private static void Main(string[] args) { FixArgsStyle(args); //TODO: configuration key var options = new DeployOptions(); if (args.Length == 0) { WriteHelp(); Environment.Exit(Parser.DefaultExitCodeFail); } try { if (!Parser.Default.ParseArguments(args, options, (v, o) => { if (o is PackagePushOption ppo) { ExecuteVerb(ppo).Wait(); } else if (o is PackageOption po) { ExecuteVerb(po).Wait(); } else if (o is InstallOption io) { ExecuteVerb(io).Wait(); } else if (o is PushOption _po) { ExecuteVerb(_po).Wait(); } else { WriteHelp(); Environment.Exit(Parser.DefaultExitCodeFail); } })) { WriteHelp(); Environment.Exit(Parser.DefaultExitCodeFail); } } catch (AggregateException ex) when(ex.InnerException != null) { Console.Error.WriteLine(ex.InnerException.ToString()); Environment.Exit(-1); } catch (Exception ex) { Console.Error.WriteLine(ex.ToString()); Environment.Exit(-1); } }
private static void WriteHelp() { var options = new DeployOptions(); Console.WriteLine(new HelpText("Usage: <Verb> [-Option value]", " ", options)); Console.WriteLine(new HelpText("PackPush", " ", options.PackagePushOption)); Console.WriteLine(new HelpText("Pack", " ", options.PackageOption)); Console.WriteLine(new HelpText("Install", " ", options.InstallOption)); Console.WriteLine(new HelpText("Push", " ", options.PushOption)); Console.WriteLine(new HelpText("Share", " ", options.ShareOption)); Console.WriteLine("Example:"); Console.WriteLine(@"Dotyk.Store.Deployment.exe PackPush -Project ""c:\Something\Project.csproj"" -Server ""http://dotyk-store.azurewebsites.net"" -Login ""*****@*****.**"" -Password ""securePassword!"" -Register"); Console.WriteLine(@"Dotyk.Store.Deployment.exe Pack -Project ""c:\Something\Project.csproj"""); }