コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        public (FilterChain, string[], string[]) RegisterCliOptions(string[] args)
        {
            // Register Filters
            FilterBundle.RegisterCliOptions();
            _filterCount = CliArgs.GetItems().Count();

            // Register Experimental Filters
            ExperimentalBundle.RegisterCliOptions();
            _experimentalFilterCount = CliArgs.GetItems().Count() - _filterCount;

            // Parse CLI args and generate FilterSet of them
            (var filterChain, string[] nonOptionArgs) = CliArgs.ParseFilterArgs(args);

            // Extract non-option and remaining option arguments
            string[] nonFilterOptionArgs;
            (nonOptionArgs, nonFilterOptionArgs) = CliArgs.ExtractOptionArguments(nonOptionArgs);

            return(filterChain, nonOptionArgs, nonFilterOptionArgs);
        }
コード例 #2
0
        public static void PrintHelp(int filterCount = -1, int expFilterCount = -1, bool verbose = true)
        {
            string usage =
                "\nUsage:\n"
                + "  colschman [-filter] <sourcefile> [<targetfile>]\n"
                + "  colschman [-filter][=param1][,param2][,param3] <sourcefile> [<targetfile>]\n"
                + "  colschman [-filter1] [--filter2] <sourcefile> [<targetfile>]\n"
                + "  colschman [-filter][(rangeattr1:min-max,rangeattr2:min-max)[=param] <sourcefile> [<targetfile>]\n"
                + "  colschman [-filter][(rangeattr:min/slope-max/slope)[=param] <sourcefile> [<targetfile>]\n"
                + "  colschman [-filter][(rangeattr:minstart,minend,maxstart,maxend)[=param] <sourcefile> [<targetfile>]\n";

            if (!verbose)
            {
                usage += "\nMore detailed help:\n  colschman --help\n";
            }

            Console.WriteLine(usage);

            Console.WriteLine("Available Filters:");
            if (verbose)
            {
                Console.WriteLine();
            }
            if (filterCount == -1 || expFilterCount == -1)
            {
                // all filters
                foreach (var cliArg in CliArgs.GetItems())
                {
                    Console.WriteLine(cliArg.GetDescription(verbose));
                    if (verbose)
                    {
                        Console.WriteLine();
                    }
                }

                return;
            }

            // non experimental filters
            for (int i = 0; i < filterCount; i++)
            {
                Console.WriteLine(CliArgs.GetItem(i).GetDescription(verbose));
                if (verbose && i < filterCount - 1)
                {
                    Console.WriteLine();
                }
            }

            // experimental filters
            if (expFilterCount > 0)
            {
                Console.WriteLine("Experimental Filters:");
                if (verbose)
                {
                    Console.WriteLine();
                }
                for (int i = filterCount; i < filterCount + expFilterCount; i++)
                {
                    Console.WriteLine(CliArgs.GetItem(i).GetDescription(verbose));
                    if (verbose && i < filterCount + expFilterCount - 1)
                    {
                        Console.WriteLine();
                    }
                    ;
                }
            }

            if (!verbose)
            {
                Console.WriteLine();
            }
            ;

            const int col1 = -13;
            const int col2 = -14;

            string help_tail = "Range attributes:\n"
                               + $"  {"h, hue",col1} {"Hue",col2}|  {"r, red",col1} {"Red",col2}\n"
                               + $"  {"s, sat",col1} {"Saturation",col2}|  {"g, green",col1} {"Green",col2}\n"
                               + $"  {"l, light",col1} {"Lightness",col2}|  {"b, blue",col1} {"Blue",col2}\n"
                               + $"  {"v, value",col1} {"Value",col2}|  {"bri, bright",col1} {"Brightness",col2}\n\n"
                               + "Example:\n"
                               + "  colschman -al=0.1,0.9 -s(hue:40/10-180/10)=1.2 my_scheme.icls fixed_scheme.icls\n\n";

            Console.Write(help_tail);
        }