Esempio n. 1
0
        string GetOptionUsage(ArgOption option)
        {
            StringBuilder usage = new StringBuilder();
            bool          first = true;

            foreach (string key in option.Keys.Keys)
            {
                if (!first)
                {
                    usage.Append(" | ");
                }
                first = false;
                usage.Append(OptionChar);
                usage.Append(key);
                if (option.IsParameter)
                {
                    usage.Append("=<value>");
                }
            }
            if (!string.IsNullOrEmpty(option.Help))
            {
                usage.Append(" - " + option.Help);
            }
            return(usage.ToString());
        }
Esempio n. 2
0
        ArgOption FindOption(string arg, out string v, ref Dictionary <object, bool> usedOptions)
        {
            int i = arg.IndexOfAny(new char[] { '=', ':' });

            v = i < 0 ? null : arg.SafeSubstring(i + 1);
            string    keyName = i < 0 ? arg : arg.SafeRemove(i);
            ArgOption op      = null;

            foreach (ArgOption option in this.options)
            {
                if (option.Keys.ContainsKey(keyName))
                {
                    op = option;
                    break;
                }
            }
            if (op == null)
            {
                return(null);
            }
            if (!op.AllowMultiple && usedOptions.ContainsKey(op))
            {
                return(null);
            }
            if (!usedOptions.ContainsKey(op))
            {
                usedOptions.Add(op, true);
            }
            return(op);
        }
Esempio n. 3
0
        bool ParseKeyCore(string arg, ref bool onlyTargets, ref int targetIndex, ref Dictionary <object, bool> usedOptions)
        {
            string    v;
            ArgOption option = FindOption(arg.Substring(1), out v, ref usedOptions);

            if (option == null)
            {
                return(false);
            }
            if (!option.IsParameter && v != null)
            {
                return(false);
            }
            if (option.IsParameter && v == null)
            {
                return(false);
            }
            option.DoAction(v);
            return(true);
        }
Esempio n. 4
0
 string GetOptionString(ArgOption option)
 {
     return(OptionChar.ToString() + option.Keys.Keys.First());
 }
Esempio n. 5
0
 bool ParseKeyValue(string arg, ref bool onlyTargets, ref ArgOption nextKey, ref int targetIndex, ref Dictionary <object, bool> usedOptions)
 {
     nextKey.DoAction(arg);
     nextKey = null;
     return(true);
 }