Example #1
0
        public bool Run(string[] args)
        {
            var cmdVerbs = new CmdVerbs();
            var parser   = new Parser(settings =>
            {
                settings.CaseSensitive          = false;
                settings.HelpWriter             = Console.Out;
                settings.IgnoreUnknownArguments = false;
            });
            var ret = parser.ParseArgumentsStrict(args,
                                                  cmdVerbs,
                                                  (verb, opts) => DoCommand(cmdVerbs, verb, opts));

            return(ret);
        }
Example #2
0
        public void GetHelp(CmdVerbs cmdv, CmdArgsGetHelpCommand args)
        {
            var    s = args.Command;
            string txt;

            if (s == null)
            {
                txt = cmdv.GetUsage("");
            }
            else if (s.Equals("*"))
            {
                txt = HelpText.AutoBuild(cmdv, "");
            }
            else
            {
                txt = HelpText.AutoBuild(cmdv, s);
            }
            Console.WriteLine(txt);
        }
Example #3
0
        private void DoCommand(CmdVerbs cmds, string verb, Object args)
        {
            if (args == null)
            {
                return;
            }
            var verbCmds = new Dictionary <string, Action>(StringComparer.OrdinalIgnoreCase);

            verbCmds.Add(CmdVerbs.GetToolVersionVerb, () =>
            {
                var ret = GetToolVersion((CmdArgsGetToolVersion)args);
                WriteToOutput(ret);
            });
            verbCmds.Add(CmdVerbs.GetSubscriberVerb, () =>
            {
                var subs = GetSubscriber((CmdArgsSubIdOpt)args);
                WriteToOutput(subs);
            });
            verbCmds.Add(CmdVerbs.NewSubscriberVerb, () =>
            {
                var sub = NewSubscriber((CmdArgsNewSub)args);
                WriteToOutput(sub);
            });
            verbCmds.Add(CmdVerbs.RemoveSubscriberVerb, () =>
            {
                var sub = RemoveSubscriber((CmdArgsSubIdReq)args);
                WriteToOutput(sub);
            });
            verbCmds.Add(CmdVerbs.SyncSubscriberVerb, () =>
            {
                var sub = SyncSubscriber((CmdArgsSubIdOpt)args);
                WriteToOutput(sub);
            });
            verbCmds.Add(CmdVerbs.PublishDirectoryVerb, () =>
            {
                var snapId = PublishDirectory((CmdArgsPublishDirectory)args);
                WriteToOutput(snapId);
            });
            verbCmds.Add(CmdVerbs.SyncDirectoryVerb, () =>
            {
                SyncDirectory((CmdArgsSyncDirectory)args);
            });
            verbCmds.Add(CmdVerbs.InitializeSyncStateVerb, () =>
            {
                InitializeSyncState((CmdArgsInitalizeSyncState)args);
            });
            verbCmds.Add(CmdVerbs.KuduSyncVerb, () =>
            {
                KuduSync((KuduSyncOptions)args);
            });
            verbCmds.Add(CmdVerbs.WatchSyncStateVerb, () =>
            {
                WatchSyncState((CmdArgsWatchSyncState)args);
            });
            verbCmds.Add(CmdVerbs.SetSubscriberSiteStatusVerb, () =>
            {
                SetSubscriberSiteStatus((CmdArgsSetSubscriberSiteStatus)args);
            });
            verbCmds.Add(CmdVerbs.GetHelpVerb, () =>
            {
                var opts           = (CmdArgsGetHelpCommand)args;
                var normalizedVerb = verbCmds.Keys.Where(key => key.Equals(opts.Command, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
                if (!String.IsNullOrEmpty(normalizedVerb))
                {
                    opts.Command = normalizedVerb;
                }
                GetHelp(cmds, opts);
            });
            verbCmds[verb].Invoke();
        }