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); }
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}"); } }
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()); }
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); } }
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); } } }
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}."); } }
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(); } } }
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%"); } }
public TextBoxWriter(TextBox textbox) { this.textbox = textbox; this.writeTextDelegate = new WriteTextDelegate(WriteToTextBox); }
abstract public void Run(WriteTextDelegate writeText, string configuration, List <string> platforms);
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(); }
public MainForm() { InitializeComponent(); RegistryHandler = new RegistryHandler(this); md = new WriteTextDelegate(DoWriteText); }