示例#1
0
        public void Parse(string[] arguments)
        {
            if (arguments.Length == 0)
            {
                Usage(1);
            }

            _argumentsLength = arguments.Length;
            for (_index = 0; _index < _argumentsLength; _index++)
            {
                var argument = arguments[_index];
                if (argument[0] != '-' && argument[0] != '/')
                {
                    break;
                }

                switch (argument[1])
                {
                case 'c':
                    BumpIndex("-c");
                    ConfigFile = arguments[_index];
                    break;

                case 'h':
                    Usage(0);
                    break;

                case 'm':
                    BumpIndex("-m");
                    IfModifiedSince = new DateExpander(_variables).ExecuteAsDateTime(arguments[_index]);
                    break;

                case 'o':
                    BumpIndex("-o");
                    OutputFile = arguments[_index];
                    break;

                case 'q':
                    Quiet = true;
                    break;

                case 'P':
                    ParseOnly = true;
                    break;

                case 't':
                    BumpIndex("-t");
                    TemplatesFile = arguments[_index];
                    break;

                case 'V':
                    Version(Console.Out);
                    Environment.Exit(0);
                    break;

                case 'v':
                    Verbose = true;
                    break;

                case 'X':
                    Xml = true;
                    break;

                default:
                    throw new Exception(string.Format("Illegal argument: {0}", argument));
                }
            }

            if (_argumentsLength - _index < 2)
            {
                throw new Exception("Missing profile and/or request");
            }

            Profile = arguments[_index++];
            Request = arguments[_index++];

            if (_argumentsLength - _index > 0)
            {
                PostData = arguments[_index];
            }
        }
示例#2
0
 internal Expander(Configuration configuration)
 {
     _getVariable  = new GetVariable(configuration.Variables);
     _dateExpander = new DateExpander(configuration.Variables);
 }