public int Execute() { return(ConsoleTask.Execute(this, console => { console.WriteLine("Getting package information..."); var dirs = SharedOptions.GetDirectories(BasePackage, OurPackage).ToList(); var script = default(InstallScript); console.Write("Calculating diffs... "); using (var prog = new ProgressBar()) { var processor = new MergeProcessor() { SortDependencies = true }; if (!string.IsNullOrEmpty(FirstOfGroup)) { processor.FirstOfGroup.UnionWith(FirstOfGroup.Split(',')); } processor.ProgressChanged += (s, ev) => prog.Report(ev.Progress / 100.0); script = processor.Merge(dirs[0], dirs[1]); } console.WriteLine("Done."); SharedOptions.WritePackage(console, script, Output, MultipleDirectories, CleanOutput); })); }
public async Task <int> Execute(ILogger logger) { return(ConsoleTask.Execute(this, (console) => { console.WriteLine("Getting package information..."); var script = Package.Create(InputFile).Single().Read(); SharedOptions.WritePackage(console, script, Output, MultipleDirectories, CleanOutput); })); }
public int Execute() { return(ConsoleTask.Execute(this, (console) => { console.WriteLine("Getting package information..."); var script = InnovatorPackage.Load(InputFile).Read(); SharedOptions.WritePackage(console, script, Output, MultipleDirectories, CleanOutput); })); }
public int Execute() { return(ConsoleTask.Execute(this, console => { if (!Directory.Exists(InputFile)) { throw new InvalidOperationException(); } })); }
public int Execute() { return(ConsoleTask.Execute(this, console => { if (string.IsNullOrWhiteSpace(InputFile)) { throw new ArgumentNullException(nameof(InputFile)); } if (string.IsNullOrWhiteSpace(Transform)) { throw new ArgumentNullException(nameof(Transform)); } if (string.IsNullOrWhiteSpace(Output)) { throw new ArgumentNullException(nameof(Output)); } if (!File.Exists(InputFile)) { throw new FileNotFoundException("Input file was not found.", InputFile); } if (!File.Exists(Transform)) { throw new FileNotFoundException("Transform file was not found.", Transform); } var logger = new Logger(console); using (var document = new XmlTransformableDocument()) using (var transformation = new XmlTransformation(Transform, logger)) { document.PreserveWhitespace = true; document.Load(InputFile); var success = transformation.Apply(document); if (success) { document.Save(Output); } else { throw new AggregateException(logger.Exceptions); } } })); }
public int Execute() { return(ConsoleTask.Execute(this, console => { console.WriteLine("Getting package information..."); var elem = XElement.Load(InputFile); if (RemoveMetadata) { elem.Attribute("created")?.Remove(); elem.Attribute("creator")?.Remove(); elem.Attribute("modified")?.Remove(); } var baseDir = Path.GetDirectoryName(InputFile); foreach (var path in elem.Elements("Path").ToList()) { var fullPath = Path.Combine(baseDir, path.Attribute("path")?.Value); if (!File.Exists(fullPath)) { Console.WriteLine("Removing reference to `{0}`", path.Attribute("path")?.Value); path.Remove(); } } console.WriteLine("Writing file..."); using (var writer = XmlWriter.Create(InputFile, new XmlWriterSettings() { OmitXmlDeclaration = true, Indent = true })) { elem.Save(writer); } })); }