private static void Run(CommandLineApplication cmd, ILogger log) { cmd.Description = "Delete a package or packages from a feed."; var optionConfigFile = cmd.Option(Constants.ConfigOption, Constants.ConfigDesc, CommandOptionType.SingleValue); var sourceName = cmd.Option(Constants.SourceOption, Constants.SourceDesc, CommandOptionType.SingleValue); var packageId = cmd.Option("-i|--id", "Package id.", CommandOptionType.SingleValue); var version = cmd.Option("-v|--version", "Package version. If this is not specified all versions will be deleted.", CommandOptionType.SingleValue); var reason = cmd.Option("-r|--reason", "Reason for deleting the package.", CommandOptionType.SingleValue); var force = cmd.Option("-f|--force", "Ignore missing packages.", CommandOptionType.NoValue); var verbose = cmd.Option(Constants.VerboseOption, Constants.VerboseDesc, CommandOptionType.NoValue); var propertyOptions = cmd.Option(Constants.PropertyOption, Constants.PropertyDescription, CommandOptionType.MultipleValue); cmd.HelpOption(Constants.HelpOption); var required = new List <CommandOption>() { packageId }; cmd.OnExecute(async() => { // Validate parameters CmdUtils.VerifyRequiredOptions(required.ToArray()); // Init logger Util.SetVerbosity(log, verbose.HasValue()); // Create a temporary folder for caching files during the operation. using (var cache = new LocalCache(new PerfTracker())) { // Load settings and file system. var settings = LocalSettings.Load(optionConfigFile.Value(), SettingsUtility.GetPropertyMappings(propertyOptions.Values)); var fileSystem = await Util.CreateFileSystemOrThrow(settings, sourceName.Value(), cache); var success = await DeleteCommand.RunAsync(settings, fileSystem, packageId.Value(), version.Value(), reason.Value(), force.HasValue(), log); return(success ? 0 : 1); } }); }
public static Task <int> RunCore(LocalSettings settings, ISleetFileSystem source, string packageId, string version, string reason, bool force, ILogger log) { return(DeleteCommand.RunCore(settings, source, packageId, version, reason, force, log)); }
public static Task <int> MainCore(string[] args, ILogger log) { #if DEBUG if (args.Contains("--debug")) { args = args.Skip(1).ToArray(); while (!Debugger.IsAttached) { } Debugger.Break(); } #endif var app = new CommandLineApplication(); app.Name = "sleet"; app.FullName = "Sleet"; app.HelpOption("-h|--help"); app.VersionOption("--version", Constants.SleetVersion.ToFullVersionString()); InitCommand.Register(app, log); PushCommand.Register(app, log); DeleteCommand.Register(app, log); ValidateCommand.Register(app, log); StatsCommand.Register(app, log); CreateConfigCommand.Register(app, log); app.OnExecute(() => { app.ShowHelp(); return(0); }); var exitCode = 0; try { exitCode = app.Execute(args); } catch (CommandParsingException ex) { ex.Command.ShowHelp(); } catch (AggregateException ex) { exitCode = 1; foreach (var inner in ex.InnerExceptions) { log.LogError(inner.Message); log.LogDebug(inner.ToString()); } } catch (Exception ex) { exitCode = 1; log.LogError(ex.Message); log.LogDebug(ex.ToString()); } return(Task.FromResult(exitCode)); }