Exemplo n.º 1
0
        /// <summary>
        /// コマンドライン解析
        /// </summary>
        public static void Parse(string[] args)
        {
            //    /*Mono.Options*/
            //case insensitive
            //”オプション” ”説明” ”オプションの引数に対するアクション”を定義する。
            //OptionSet_icaseに渡すオプションは小文字で記述し、
            //オプションの最後に=をつける。 bool型ならつけない。
            var optionset = new OptionSet_icase();

            optionset
            .Add("cpu=", "CPU threashold", (float v) => CpuThd        = v)
            .Add("cputhd=", "CPU threashold", (float v) => CpuThd     = v)
            .Add("hdd=", "HDD  threashold", (float v) => HddThd       = v)
            .Add("hddthd=", "HDD  threashold", (float v) => HddThd    = v)
            .Add("net=", "Network threashold", (float v) => NetThd    = v)
            .Add("netthd=", "Network threashold", (float v) => NetThd = v)

            .Add("dur=", "duration sec", (float v) => Duration      = v)
            .Add("duration=", "duration sec", (float v) => Duration = v)
            .Add("timeout=", "timeout sec", (float v) => Timeout    = v)

            .Add("and_more", "help mes", (v) => { /*action*/ });

            try
            {
                //パース仕切れなかったコマンドラインはList<string>で返される。
                var extra = optionset.Parse(args);
            }
            catch (OptionException)
            {
                //パース失敗
                return;
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// コマンドライン解析  param
        /// </summary>
        public void ParseParam(string[] args)
        {
            //    /*Mono.Options*/
            //case insensitive
            //”オプション” ”説明” ”オプションの引数に対するアクション”を定義する。
            //OptionSet_icaseに渡すオプションは小文字で記述し、
            //オプションの最後に=をつける。 bool型ならつけない。
            var optionset = new OptionSet_icase();

            optionset
            .Add("limit=", "Read speed limit", (double v) => this.ReadLimit_MiBsec    = v)
            .Add("midint=", "MidProcess interval", (double v) => this.MidInterval_min = v)
            .Add("midinv=", "MidProcess interval", (double v) => this.MidInterval_min = v)
            .Add("extcmd=", "switch Get_ExternalCommand", (int v) => this.ExtCmd      = 0 < v)
            .Add("preprc=", "switch PreProcessList", (int v) => this.PrePrc           = 0 < v)
            .Add("midprc=", "switch MidProcessList", (int v) => this.MidPrc           = 0 < v)
            .Add("postprc=", "switch PostProcessList", (int v) => { this.PostPrc = 0 < v; })
            .Add("macro1=", (v) => this.Macro1        = v)
            .Add("suspend_pfamain", (v) => this.Abort = v != null)//r15までとの互換性
            .Add("abort", (v) => this.Abort           = v != null)
            .Add("and_more", "help mes", (v) => { /* action */ });
            try
            {
                //パース仕切れなかったコマンドラインはList<string>で返される。
                var extra = optionset.Parse(args);
            }
            catch (OptionException e)
            {
                Log.System.WriteLine("▽CommandLine parse error");
                Log.System.WriteLine("    " + e.Message);
                Log.System.WriteLine();
                return;
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// コマンドライン解析  入力、xml
        /// </summary>
        public void ParseInput(string[] args)
        {
            //1つ目の引数をファイル名とする
            if (0 < args.Count())
            {
                File = args[0];
            }

            //    /*Mono.Options*/
            //case insensitive
            //”オプション” ”説明” ”オプションの引数に対するアクション”を定義する。
            //OptionSet_icaseに渡すオプションは小文字で記述し、
            //オプションの最後に=をつける。 bool型ならつけない。
            var optionset = new OptionSet_icase();

            optionset
            .Add("npipe=", "Input named pipe", (v) => this.Pipe = v)
            .Add("file=", "Input file", (v) => this.File        = v)
            .Add("xml=", "xml file path", (v) => this.XmlPath   = v)
            .Add("and_more", "help mes", (v) => { /*action*/ });
            try
            {
                //パース仕切れなかったコマンドラインはList<string>で返される。
                var extra = optionset.Parse(args);
            }
            catch (OptionException e)
            {
                Log.System.WriteLine("  /▽ CommandLine parse error ▽/");
                Log.System.WriteLine("    " + e.Message);
                Log.System.WriteLine();
                return;
            }

            //ファイル名 → フルパス
            //  - ファイル名形式でないと、この後のパス変換で例外がでる。
            // - ファイル名のみだと引数として渡した先で使えない。(カレントディレクトリの問題)
            try
            {
                //パスに無効な文字が含まれていると例外
                var fi = new System.IO.FileInfo(File);
                File = fi.FullName;
            }
            catch
            {
                Log.System.WriteLine("Invalid File name:" + File);
            }
        }