Exemplo n.º 1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RuleCheckResult"/> class
 /// </summary>
 /// <param name="thing">
 /// a reference to te <see cref="Thing"/> that has been checked by a Rule
 /// </param>
 /// <param name="id">
 /// the identifier or code of the Rule that may have been broken
 /// </param>
 /// <param name="description">
 /// the description of the Rule that may have been broken
 /// </param>
 /// <param name="severity">
 /// the <see cref="SeverityKind"/>
 /// </param>
 public RuleCheckResult(Thing thing, string id, string description, SeverityKind severity)
 {
     this.Thing       = thing;
     this.Id          = id;
     this.Description = description;
     this.Severity    = severity;
 }
Exemplo n.º 2
0
        public void WriteMessage(string msg, SeverityKind severity)
        {
            ConsoleColor defaultColor = Console.ForegroundColor;

            switch (severity)
            {
            case SeverityKind.Info:
                Console.ForegroundColor = ConsoleColor.Cyan;
                break;

            case SeverityKind.Warning:
                Console.ForegroundColor = ConsoleColor.Yellow;
                break;

            case SeverityKind.Error:
                Console.ForegroundColor = ConsoleColor.Red;
                break;

            default:
                Console.ForegroundColor = ConsoleColor.White;
                break;
            }

            Console.WriteLine(msg);
            Console.ForegroundColor = defaultColor;
        }
Exemplo n.º 3
0
        public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType)
        {
            if ((value == null))
            {
                return(null);
            }
            SeverityKind valueCasted = ((SeverityKind)(value));

            if ((valueCasted == SeverityKind.Unknown))
            {
                return("unknown");
            }
            if ((valueCasted == SeverityKind.Critical))
            {
                return("critical");
            }
            if ((valueCasted == SeverityKind.Major))
            {
                return("major");
            }
            if ((valueCasted == SeverityKind.Minor))
            {
                return("minor");
            }
            if ((valueCasted == SeverityKind.Warning))
            {
                return("warning");
            }
            throw new ArgumentOutOfRangeException("value");
        }
Exemplo n.º 4
0
 public void WriteMessage(string msg, SeverityKind severity)
 {
     if (severity != SeverityKind.Info)
     {
         Console.Write($"{severity}: ");
     }
     Console.WriteLine(msg);
 }
Exemplo n.º 5
0
 public Flag(SeverityKind severity, Span span, string message, int code, ProgramName progName = null)
 {
     Severity    = severity;
     Span        = span;
     Message     = string.IsNullOrWhiteSpace(message) ? "" : message;
     Code        = code;
     Node        = null;
     ProgramName = progName;
 }
Exemplo n.º 6
0
        public bool Compile(CommandLineOptions options, TextWriter log)
        {
            bool finished = false;
            bool result   = false;

            NamedPipe service = Connect(log);

            CompilerOutputStream output = new CompilerOutputStream(log);

            options.compilerId = id;
            StringWriter  writer     = new StringWriter();
            XmlSerializer serializer = new XmlSerializer(typeof(CommandLineOptions));

            serializer.Serialize(writer, options);
            service.WriteMessage(writer.ToString());

            try
            {
                while (!finished && !service.IsClosed)
                {
                    string msg = service.ReadMessage();
                    DebugWriteLine(msg);
                    int i = msg.IndexOf(':');
                    if (i > 0)
                    {
                        string       sev      = msg.Substring(0, i);
                        SeverityKind severity = SeverityKind.Info;
                        Enum.TryParse <SeverityKind>(sev, out severity);
                        msg = msg.Substring(i + 2);

                        if (msg.StartsWith(JobFinishedMessage))
                        {
                            string tail = msg.Substring(JobFinishedMessage.Length);
                            finished = true;
                            bool.TryParse(tail, out result);
                        }
                        else
                        {
                            output.WriteMessage(msg, severity);
                        }
                    }
                    else
                    {
                        log.WriteLine(msg);
                    }
                }
            }
            catch (Exception)
            {
                result = false;
                output.WriteMessage("PCompilerService is gone, did someone kill it?  Perhaps the P build is happening in parallel?", SeverityKind.Error);
                finished = true;
            }

            return(result);
        }
Exemplo n.º 7
0
 public Flag(SeverityKind severity, Node node, string message, int code, ProgramName progName = null)
 {
     Contract.Requires(node != null);
     Severity    = severity;
     Span        = node.Span;
     Message     = string.IsNullOrWhiteSpace(message) ? "" : message;
     Code        = code;
     Node        = node;
     ProgramName = progName;
 }
Exemplo n.º 8
0
            public void WriteMessage(string msg, SeverityKind severity)
            {
                switch (severity)
                {
                case SeverityKind.Info:
                    stdout.WriteLine(msg);
                    break;

                case SeverityKind.Warning:
                case SeverityKind.Error:
                    stderr.WriteLine(msg);
                    break;

                default:
                    throw new ArgumentOutOfRangeException(nameof(severity), severity, null);
                }
            }
 /// <summary>
 /// Initializes a new instance of the <see cref="RuleCheckerErrorRowViewModel"/> class
 /// </summary>
 /// <param name="thing">
 /// a reference to te <see cref="Thing"/> that has been checked by a Rule
 /// </param>
 /// <param name="id">
 /// the identifier or code of the Rule that may have been broken
 /// </param>
 /// <param name="description">
 /// the description of the Rule that may have been broken
 /// </param>
 /// <param name="severity">
 /// the <see cref="SeverityKind"/>
 /// </param>
 public RuleCheckerErrorRowViewModel(Thing thing, string id, string description, SeverityKind severity)
 {
     this.ThingClassKind   = thing.ClassKind.ToString();
     this.Id               = id;
     this.Description      = description;
     this.Severity         = severity;
     this.TopContainerName = thing.TopContainer is SiteDirectory
         ? "SiteDirectory"
         : thing.TopContainer.UserFriendlyShortName;
 }
Exemplo n.º 10
0
 public void WriteMessage(string msg, SeverityKind severity)
 {
     this.writer.WriteLine("OUT: " + msg);
 }
Exemplo n.º 11
0
 public void WriteMessage(string msg, SeverityKind severity)
 {
     // send this back to the command line process that invoked this compiler.
     this.pipe.WriteMessage(severity + ": " + msg);
 }
Exemplo n.º 12
0
 public void WriteMessage(string msg, SeverityKind severity)
 {
     WriteError(msg);
 }
Exemplo n.º 13
0
 public void WriteMessage(string msg, SeverityKind severity)
 {
     writer.WriteLine(msg);
 }
Exemplo n.º 14
0
        public bool Compile(CommandLineOptions options, TextWriter log)
        {
            service = new NamedPipe(ServerPipeName, false);
            Mutex processLock = new Mutex(false, "PCompilerService");

            processLock.WaitOne();
            try
            {
                if (!service.Connect())
                {
                    ProcessStartInfo info = new ProcessStartInfo();
                    info.FileName    = typeof(CompilerServiceClient).Assembly.Location;
                    info.WindowStyle = ProcessWindowStyle.Hidden;
                    Process p = Process.Start(info);
                    if (!service.Connect())
                    {
                        log.WriteLine("Cannot start the CompilerService?");
                        return(false);
                    }
                }
            }
            finally
            {
                processLock.ReleaseMutex();
            }
            Guid   clientPipe     = Guid.NewGuid();
            string clientPipeName = clientPipe.ToString() + "-CompilerServiceClient";

            client = new NamedPipe(clientPipeName, true);
            if (!client.Connect())
            {
                log.WriteLine("weird, the process that launched this job is gone?");
                return(false);
            }
            AutoResetEvent msgEvent = new AutoResetEvent(false);
            bool           finished = false;
            bool           result   = false;

            CompilerOutputStream output = new CompilerOutputStream(log);

            client.MessageArrived += (s2, e2) =>
            {
                string msg = e2.Message;
                int    i   = msg.IndexOf(':');
                if (i > 0)
                {
                    string sev = msg.Substring(0, i);
                    msg = msg.Substring(i + 2);
                    if (msg.StartsWith("finished:"))
                    {
                        i = msg.IndexOf(':');
                        string tail = msg.Substring(i + 1);
                        finished = true;
                        bool.TryParse(tail, out result);
                        msgEvent.Set();
                    }
                    else
                    {
                        SeverityKind severity = SeverityKind.Info;
                        Enum.TryParse <SeverityKind>(sev, out severity);
                        output.WriteMessage(msg, severity);
                    }
                }
                else
                {
                    log.WriteLine(e2.Message);
                }
            };

            options.pipeName = clientPipeName;

            StringWriter  writer     = new StringWriter();
            XmlSerializer serializer = new XmlSerializer(typeof(CommandLineOptions));

            serializer.Serialize(writer, options);
            service.WriteMessage(writer.ToString());

            while (!finished)
            {
                msgEvent.WaitOne(1000);
                if (client.IsClosed)
                {
                    result = false;
                    output.WriteMessage("PCompilerService is gone, did someone kill it?  Perhaps the P build is happening in parallel?", SeverityKind.Error);
                    finished = true;
                }
            }
            service.Close();
            client.Close();
            return(result);
        }