Beispiel #1
0
        public override void Run(WriteTextDelegate writeText, string configuration, List <string> platforms)
        {
            writeText($"Building loader for {configuration} platforms {string.Join(", ", platforms)}...");

            var loader = $@"{App.Location}\bin\{configuration}.AnyCPU\Loader.exe";

            if (!File.Exists(loader))
            {
                throw new Exception($"Loader ({loader}) not found.");
            }

            var files   = platforms.Select(platform => $@"{App.Location}\bin\{configuration}.{platform}\NeoEdit.exe").ToList();
            var missing = files.Where(file => !File.Exists(file)).ToList();

            if (missing.Any())
            {
                throw new Exception("Missing files:\n" + string.Join("\n", missing));
            }

            var fileList = string.Join(" ", files.Select(file => $@"-Start=""{file}"""));
            var output   = $@"{App.Location}\Release\NeoEdit.exe";

            Directory.CreateDirectory(Path.GetDirectoryName(output));

            var arguments = $@"{fileList} -output=""{output}"" -ngen=1 -canextract=1 -go";

            RunCommand(writeText, loader, arguments);
        }
Beispiel #2
0
        public Form1()
        {
            InitializeComponent();
            writeText   = new WriteTextDelegate(WriteText);
            drawOnChart = new DrawOnChartDelegate(DrawPointOnChart);

            visualisator = new Chart3DGraphicsVisualisator();
            visualisator.prepare3dChart(this.chart1, this.chartArea1, maxSeriesNumber);
        }
        public override void Run(WriteTextDelegate writeText, string configuration, List <string> platforms)
        {
            var dirty = Git.GetDirtyPaths();

            if (string.IsNullOrEmpty(dirty))
            {
                writeText("Build directory is clean.");
            }
            else
            {
                throw new Exception($"Build directory is dirty:\n{dirty}");
            }
        }
Beispiel #4
0
        public override void Run(WriteTextDelegate writeText, string configuration, List <string> platforms)
        {
            const string remoteName   = "origin";
            const string localBranch  = "master";
            const string remoteBranch = remoteName + "/" + localBranch;

            writeText($"Fetching {remoteName}...");
            Git.Fetch(remoteName);

            writeText($"Switching to {localBranch}...");
            Git.SwitchBranch(localBranch);

            writeText($"Reset to {remoteBranch}...");
            Git.Reset(remoteBranch);
        }
 public override void Run(WriteTextDelegate writeText, string configuration, List <string> platforms)
 {
     writeText("Deleting ignored files...");
     foreach (var path in Git.GetIgoredPaths())
     {
         writeText($"Deleting {path}...");
         if (File.Exists(path))
         {
             File.Delete(path);
         }
         else if (Directory.Exists(path))
         {
             Directory.Delete(path, true);
         }
     }
 }
        public async Task <String> EncodeText(BitmapDecoder imageDecoder, AnymapProperties properties)
        {
            var pixelDataProvider = await imageDecoder.GetPixelDataAsync();

            var image = pixelDataProvider.DetachPixelData();

            properties.SourcePixelFormat = imageDecoder.BitmapPixelFormat;
            UInt32            totalPixels  = imageDecoder.OrientedPixelWidth * imageDecoder.OrientedPixelHeight;
            WriteTextDelegate write        = null;
            bool         isContainMaxValue = true;
            StringWriter stringWriter      = new StringWriter();

            // Format
            switch (properties.AnymapType)
            {
            case AnymapType.Bitmap:
                stringWriter.WriteLine("P1");
                isContainMaxValue = false;
                write             = WriteP1;
                break;

            case AnymapType.Graymap:
                stringWriter.WriteLine("P2");
                write = WriteP2;
                break;

            case AnymapType.Pixmap:
                stringWriter.WriteLine("P3");
                write = WriteP3;
                break;
            }
            // Size
            stringWriter.WriteLine("{0} {1}", imageDecoder.OrientedPixelWidth, imageDecoder.OrientedPixelHeight);
            properties.Width  = imageDecoder.OrientedPixelWidth;
            properties.Height = imageDecoder.OrientedPixelHeight;
            // Maximum pixel value
            if (isContainMaxValue)
            {
                stringWriter.WriteLine("{0}", properties.MaxValue);
            }
            // Pixels
            write(image, stringWriter, totalPixels, properties);
            return(stringWriter.ToString());
        }
Beispiel #7
0
        public override void Run(WriteTextDelegate writeText, string configuration, List <string> platforms)
        {
            var versions = new List <string> {
                "Enterprise", "Professional"
            };
            var template = @"C:\Program Files (x86)\Microsoft Visual Studio\2017\{0}\Common7\IDE\devenv.com";
            var devenv   = versions.Select(version => string.Format(template, version)).FirstOrDefault(path => File.Exists(path));

            if (devenv == null)
            {
                throw new Exception("Unable to find devenv");
            }
            foreach (var platform in platforms)
            {
                writeText($"Building {configuration}.{platform}...");
                var arguments = $@"""{App.Location}\NeoEdit.sln"" /build ""{configuration}|{platform}"" /project Loader";
                RunCommand(writeText, devenv, arguments);
            }
        }
Beispiel #8
0
        public override void Run(WriteTextDelegate writeText, string configuration, List <string> platforms)
        {
            var releases = $@"{App.Location}\Release";

            foreach (var path in Git.GetIgoredPaths())
            {
                if (path.StartsWith(releases))
                {
                    continue;
                }
                if (File.Exists(path))
                {
                    File.Delete(path);
                }
                else if (Directory.Exists(path))
                {
                    Directory.Delete(path, true);
                }
            }
        }
Beispiel #9
0
        protected void RunCommand(WriteTextDelegate writeText, string fileName, string arguments)
        {
            writeText($"Execute: {fileName} {arguments}...");

            var stopWatch = Stopwatch.StartNew();
            var process   = new Process
            {
                StartInfo = new ProcessStartInfo
                {
                    FileName               = fileName,
                    Arguments              = arguments,
                    UseShellExecute        = false,
                    RedirectStandardOutput = true,
                    RedirectStandardError  = true,
                    CreateNoWindow         = true,
                }
            };

            process.OutputDataReceived += (s, e) => { if (e.Data != null)
                                                      {
                                                          writeText(e.Data);
                                                      }
            };
            process.ErrorDataReceived += (s, e) => { if (e.Data != null)
                                                     {
                                                         writeText($"[stderr] {e.Data}");
                                                     }
            };
            process.Start();
            process.BeginOutputReadLine();
            process.BeginErrorReadLine();
            process.WaitForExit();
            stopWatch.Stop();
            writeText($"Finished {Path.GetFileName(fileName)} ({stopWatch.Elapsed.TotalSeconds} seconds).");

            if (process.ExitCode != 0)
            {
                throw new Exception($"Command failed: exit code {process.ExitCode}.");
            }
        }
Beispiel #10
0
        public override void Run(WriteTextDelegate writeText, string configuration, List <string> platforms)
        {
            using (var git = new GitHub())
            {
                writeText("Looking for releases...");
                var releaseIds = git.GetReleaseIDs().Result;
                writeText($"{releaseIds.Count} releases found.");
                foreach (var releaseId in releaseIds)
                {
                    writeText($"Delete release {releaseId}...");
                    git.DeleteRelease(releaseId).Wait();
                }

                writeText("Looking for tags...");
                var tagIds = git.GetTagIDs().Result;
                writeText($"{tagIds.Count} tags found.");
                foreach (var tagId in tagIds)
                {
                    writeText($"Delete tag {tagId}...");
                    git.DeleteTag(tagId).Wait();
                }
            }
        }
Beispiel #11
0
        public override void Run(WriteTextDelegate writeText, string configuration, List <string> platforms)
        {
            var exeName = $@"{App.Location}\Release\NeoEdit.exe";

            if (!File.Exists(exeName))
            {
                throw new Exception($"Build not found: {exeName}.");
            }
            var version = FileVersionInfo.GetVersionInfo(exeName).FileVersion;

            using (var client = new GitHub())
            {
                writeText($"Version is {version}");

                writeText($"Creating release {version}.");
                var uploadUrl = client.CreateRelease(version).Result;

                writeText($"Uploading {exeName}...");
                writeText($"0%");
                client.UploadFile(uploadUrl, exeName, percent => writeText($"\udead{percent}%")).Wait();
                writeText("\udead100%");
            }
        }
Beispiel #12
0
 public TextBoxWriter(TextBox textbox)
 {
     this.textbox           = textbox;
     this.writeTextDelegate = new WriteTextDelegate(WriteToTextBox);
 }
Beispiel #13
0
 abstract public void Run(WriteTextDelegate writeText, string configuration, List <string> platforms);
Beispiel #14
0
        void Run(Action <WriteTextDelegate> action)
        {
            EnableButtons(false);

            var text       = "";
            var resetEvent = new AutoResetEvent(false);
            WriteTextDelegate writeText = str =>
            {
                if (str.StartsWith("\udead"))
                {
                    var index = text.LastIndexOf('\n', Math.Max(0, text.Length - 2));
                    if (index != -1)
                    {
                        text = text.Substring(0, index + 1);
                    }
                    str = str.Substring(1);
                }
                text += $"{str}\n";
                resetEvent.Set();
            };

            var bw = new BackgroundWorker();

            bw.DoWork += (s, e) =>
            {
                try
                {
                    var stopWatch = Stopwatch.StartNew();
                    action(writeText);
                    stopWatch.Stop();
                    writeText($"Done ({stopWatch.Elapsed.TotalSeconds} seconds).");
                }
                catch (Exception ex)
                {
                    for (; ex != null; ex = ex.InnerException)
                    {
                        writeText(ex.Message);
                    }
                    writeText("Failed.");
                }
            };

            bw.RunWorkerCompleted += (s, e) => EnableButtons(true);
            bw.RunWorkerAsync();

            new Thread(() =>
            {
                var curText = default(string);
                while ((bw.IsBusy) || (curText != text))
                {
                    if (bw.IsBusy)
                    {
                        resetEvent.WaitOne(100);
                    }

                    if (curText != text)
                    {
                        curText = text;
                        Dispatcher.Invoke(() =>
                        {
                            ProgressText            = curText;
                            progressText.CaretIndex = curText.Length;
                            progressText.ScrollToEnd();
                        });
                    }
                }
            }).Start();
        }
Beispiel #15
0
 public MainForm()
 {
     InitializeComponent();
     RegistryHandler = new RegistryHandler(this);
     md = new WriteTextDelegate(DoWriteText);
 }