Provides settings for CommandLine.Parser. Once consumed cannot be reused.
Ejemplo n.º 1
0
        static void Main(String[] arguments)
        {
            var options = new Options();

            var settings = new CommandLine.ParserSettings();

            settings.IgnoreUnknownArguments = false;
            CommandLine.Parser parser = new Parser(with => with.HelpWriter = Console.Error);

            // Try to parse the command line arguments
            if (parser.ParseArguments(arguments, options) == false)
            {
                // If we failed to parse print out the usage of this program
                Console.Write(options.GetUsage());

                return;
            }

            // Enable visuals
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            try { Application.Run(new Main(options)); }
            catch { }
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            //(1)コマンドラインパーサーの初期化
            ParserSettings setting = new ParserSettings();
            setting.HelpWriter = Console.Error;
            var parser = new Parser(setting);

            //(2)オプション用クラスに引数を展開
            var option = new ConsoleOption();
            if (!parser.ParseArguments(args, option))
            {
                //パラメータに問題がある場合は、失敗ステータスで終了
                Environment.Exit(1);
            }
            var filePath = System.IO.Path.GetFullPath(option.OutputDirPath);

            var createYoutubeQRCode = new CreateYoutubeQRCodeLib.CreateYoutubeQRCode();
            createYoutubeQRCode.TargetContentType = CreateYoutubeQRCodeLib.contentType.User;
            createYoutubeQRCode.ConsumerKey = option.ClientID;
            createYoutubeQRCode.ConsumerSecret = option.ClientSeacret;
            createYoutubeQRCode.TargetFolderPath = filePath;

            var t = createYoutubeQRCode.CreateQR();
            t.Wait();
        }
Ejemplo n.º 3
0
        public Parser(ParserSettings settings)
        {
            Assumes.NotNull(settings, "settings", SR.ArgumentNullException_ParserSettingsInstanceCannotBeNull);

            if (settings.Consumed)
            {
                throw new InvalidOperationException(SR.InvalidOperationException_ParserSettingsInstanceCanBeUsedOnce);
            }

            _settings = settings;
            _settings.Consumed = true;
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            var commandArgs = new CommandArgs();
            var settings    = new CommandLine.ParserSettings();

            settings.IgnoreUnknownArguments = false;
            CommandLine.Parser parser = new Parser(with => with.HelpWriter = Console.Error);

            // Try to parse the command line arguments
            if (parser.ParseArguments(args, commandArgs) == false)
            {
                // If we failed to parse print out the usage of this program
                //Console.Write(commandArgs.GetUsage());

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new UnitTestForm());
                return;
            }

            var unitTestRunner = new UnitTestRunner();

            unitTestRunner.Run(commandArgs);
        }
Ejemplo n.º 5
0
 private Parser(bool singleton)
 {
     Settings = new ParserSettings(false, false, Console.Error)
         {
             ParsingCulture = CultureInfo.InvariantCulture
         };
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CommandLine.Parser"/> class.
 /// </summary>
 public Parser()
 {
     _settings = new ParserSettings {
         Consumed = true
     };
 }
Ejemplo n.º 7
0
 private static StringComparison GetStringComparison(ParserSettings settings)
 {
     return(settings.CaseSensitive ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase);
 }
Ejemplo n.º 8
0
 internal Parser(ParserSettings settings)
 {
     this.settings          = settings;
     this.settings.Consumed = true;
 }
Ejemplo n.º 9
0
 private static StringComparison GetStringComparison(ParserSettings settings)
 {
     return settings.CaseSensitive ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase;
 }
Ejemplo n.º 10
0
        static void Main(string[] args)
        {
            var options = new Options();
            CommandLine.ParserSettings parserSettings = new ParserSettings();
            parserSettings.HelpWriter = Console.Error;
            CommandLine.Parser parser = new Parser(parserSettings);
            if (parser.ParseArguments(args, options))
            {
                if (options.Verbose)
                {
                    Console.WriteLine(options.Model);
                    Console.WriteLine(options.IP);
                    Console.WriteLine(options.Port);
                }
            }
            else
            {
                Environment.Exit(1);
            }

            string output;
            /*
            string test1 = "{\"SettingInfo\":[{\"id\":40, \"name\":\"Boat Type\", \"type\":1, \"values\":[{\"id\":0, \"title\":\"Sailing\"}, {\"id\":1,\"title\":\"Fishing\"}, {\"id\":2, \"title\":\"Planing\" }]}]}";
            RootSettingInfo rootSettingInfo1 = JsonConvert.DeserializeObject<RootSettingInfo>(test1);

            string test2 = "{\"SettingInfo\":[{\"id\":1,\"name\":\"Backlight Level\",\"type\":2,\"low\":0,\"high\":10}]}";
            RootSettingInfo rootSettingInfo2 = JsonConvert.DeserializeObject<RootSettingInfo>(test2);

            string test3 = "{\"SettingInfo\":[{\"id\":2,\"name\":\"Night Mode\",\"type\":3}]}";
            RootSettingInfo rootSettingInfo3 = JsonConvert.DeserializeObject<RootSettingInfo>(test3);
            */

            Navico.NavicoDiscovery.MFD websocketMFD = null;

            if ((options.IP == null) && (options.Port == null))
            {
                List<Navico.NavicoDiscovery.MFD> MFDList = new List<Navico.NavicoDiscovery.MFD>();

                Thread newThread;
                newThread = new Thread(() => Navico.NavicoDiscovery.ReceiveNewMessage(MFDList));
                newThread.IsBackground = true;
                newThread.Start();

                newThread.Join();

                foreach (Navico.NavicoDiscovery.MFD mfd in MFDList)
                {
                    if (options.Model != null)
                    {
            //                        if (string.Compare(mfd.Model, options.Model, true) != 0)
                        if (mfd.Model.IndexOf(options.Model) != 0)
                        {
                            continue;
                        }
                    }
                    if (options.IP != null)
                    {
            //                        if (string.Compare(mfd.IP, options.IP, true) != 0)
                        if (mfd.IP.IndexOf(options.IP) != 0)
                        {
                            continue;
                        }
                    }

                    DbgOutput(string.Format("MFD: {0}\tModel: {1}\tIP: {2}", mfd.Name, mfd.Model, mfd.IP));
                    foreach (Navico.NavicoDiscovery.MFDService service in mfd.Services)
                    {
                        DbgOutput(string.Format("\tService: {0}\tVersion: {1}\tPort: {2}", service.Service, service.Version, service.Port));

                        if ((service.Service == "navico-nav-ws") /*|| (service.Service == "navico-navdata-websocket")*/)
                        {
                            if (websocketMFD == null)
                            {
                                websocketMFD = mfd;
                                websocketMFD.Services = null;
                                websocketMFD.Services = new NavicoDiscovery.MFDService[1];
                                websocketMFD.Services[0] = service;
                            }
                        }
                    }
                }

                if (websocketMFD == null)
                {
                    return;
                }
            }
            else
            {
                websocketMFD = new NavicoDiscovery.MFD();
                websocketMFD.IP = options.IP;
                websocketMFD.Services = new NavicoDiscovery.MFDService[1];

                uint port = 2053;
                if (!options.Port.IsNullOrEmpty())
                {
                    port = Convert.ToUInt32(options.Port);
                }
                websocketMFD.Services[0] = new NavicoDiscovery.MFDService("navico-nav-ws", 0, port);
            }

            DbgOutput(string.Format("Connect to {0}:{1}", websocketMFD.IP, websocketMFD.Services[0].Port));

            string wsURL;
            wsURL = string.Format("ws://{0}:{1}", websocketMFD.IP, websocketMFD.Services[0].Port);
            //wsURL = string.Format("ws://172.28.29.224:2053");
            using (GoFree streamer = new GoFree(wsURL))
            {
                Listener l = new Listener(streamer);
                l.Subscribe(streamer);
                streamer.Connect();

                Thread.Sleep(500);
                Console.WriteLine("\nType \"exit\" to exit.\n");

                string data;

                if (options.RequestingAListOfDataIDs)
                {
                    DbgOutput("Requesting a list of data IDs");

            //                    data = "{\"DataListReq\":{\"group\":1}}";
            //                    streamer.Write(data);

                    RootDataListReq rootDataListReq = new RootDataListReq();
                    rootDataListReq.DataListReq = new DataListReq();

                    foreach (eDataGroup dataGroup in System.Enum.GetValues(typeof(eDataGroup)))
                    {
                        rootDataListReq.DataListReq.group = (int)dataGroup;
                        data = JsonConvert.SerializeObject(rootDataListReq);
                        streamer.Write(data);
                    }

                    Thread.Sleep(1000);
                }

                if (options.RequestFullInformationAboutADataValue)
                {
                    DbgOutput("Request full information about a data value");

            //                    data = "{\"DataInfoReq\":[40]}";
            //                    streamer.Write(data);

                    foreach (eDataType dataType in System.Enum.GetValues(typeof(eDataType)))
                    {
                        RootDataInfoReq rootDataInfoReq = new RootDataInfoReq();
                        rootDataInfoReq.DataInfoReq = new List<int>();
                        rootDataInfoReq.DataInfoReq.Add((int)dataType);
                        data = JsonConvert.SerializeObject(rootDataInfoReq);
                        streamer.Write(data);
                    }

                    Thread.Sleep(1000);
                }

                if (options.RequestingAValue)
                {
                    DbgOutput("Requesting a value");

            //                    data = "{\"DataReq\":[{\"id\":1,\"repeat\":false,\"inst\":0}]}";
            //                    streamer.Write(data);

                    foreach (eDataType dataType in System.Enum.GetValues(typeof(eDataType)))
                    {
                        RootDataReq rootDataReq = new RootDataReq();
                        rootDataReq.DataReq = new List<DataReq>();
                        DataReq dataReq = new DataReq();
                        dataReq.id = (int)dataType;
                        rootDataReq.DataReq.Add(dataReq);
                        data = JsonConvert.SerializeObject(rootDataReq);
                        streamer.Write(data);
                    }

                    Thread.Sleep(1000);
                }

                if (options.RequestASettingsGroup)
                {
                    DbgOutput("Request a settings group");

            //                    data = "{\"SettingListReq\":[{\"group\":1}]}";
            //                    streamer.Write(data);

                    foreach (eDataGroup dataGroup in System.Enum.GetValues(typeof(eDataGroup)))
                    {
                        RootSettingListReq rootSettingListReq = new RootSettingListReq();
                        rootSettingListReq.SettingListReq = new List<SettingListReq>();
                        SettingListReq settingListReq = new SettingListReq();
                        settingListReq.groupId = (int)dataGroup;
                        rootSettingListReq.SettingListReq.Add(settingListReq);
                        data = JsonConvert.SerializeObject(rootSettingListReq);
                        streamer.Write(data);
                    }

                    Thread.Sleep(1000);
                }

                if (options.RequestSettingInformation)
                {
                    DbgOutput("Request setting information");

            //                    data = "{\"SettingInfoReq\":[1]}";
            //                    streamer.Write(data);

                    foreach (eSettingIDs setting in System.Enum.GetValues(typeof(eSettingIDs)))
                    {
                        RootSettingInfoReq rootSettingInfoReq = new RootSettingInfoReq();
                        rootSettingInfoReq.SettingInfoReq = new List<int>();
                        rootSettingInfoReq.SettingInfoReq.Add((int)setting);
                        data = JsonConvert.SerializeObject(rootSettingInfoReq);
                        streamer.Write(data);
                    }

                    Thread.Sleep(1000);
                }

                if (options.RequestAListOfSettings)
                {
                    DbgOutput("Request a list of settings");

            //                    data = "{\"SettingReq\":{\"ids\":[1,2,3],\"register\":false}}";
            //                    streamer.Write(data);

                    foreach (eSettingIDs setting in System.Enum.GetValues(typeof(eSettingIDs)))
                    {
                        RootSettingReq rootSettingReq = new RootSettingReq();
                        rootSettingReq.SettingReq = new SettingReq();
                        rootSettingReq.SettingReq.ids = new List<int>();
                        rootSettingReq.SettingReq.ids.Add((int)setting);
                        data = JsonConvert.SerializeObject(rootSettingReq);
                        streamer.Write(data);
                    }

                    Thread.Sleep(1000);
                }

                if (options.RegisterToReceiveAnEvent)
                {
                    DbgOutput("Register to receive an event");

            //                    data = "{\"EventReg\":[1,2]}";
            //                    streamer.Write(data);

                    foreach (eEvents eventValue in System.Enum.GetValues(typeof(eEvents)))
                    {
                        RootEventReg rootEventReg = new RootEventReg();
                        rootEventReg.EventReg = new List<int>();
                        rootEventReg.EventReg.Add((int)eventValue);
                        data = JsonConvert.SerializeObject(rootEventReg);
                        streamer.Write(data);
                    }

                    Thread.Sleep(1000);
                }

            /*
                if (true)
                {
                    DbgOutput("Set event");

                    foreach (eEvents eventValue in System.Enum.GetValues(typeof(eEvents)))
                    {
                        RootEventSet rootEventSet = new RootEventSet();
                        rootEventSet.EventSet = new List<EventSet>();
                        EventSet eventSet = new EventSet();
                        eventSet.id = (int)eventValue;
                        eventSet.
                        rootEventSet.EventSet.Add(eventSet);
                        data = JsonConvert.SerializeObject(rootEventSet);
                        streamer.Write(data);
                    }

                    Thread.Sleep(1000);
                }
            */

                if (options.MOBEvent)
                {
                    DbgOutput("MOB event");

                    RootEventSet rootEventSet = new RootEventSet();
                    rootEventSet.EventSet = new List<EventSet>();
                    EventSet eventSet = new EventSet();
                    eventSet.id = (int)eEvents.MOB;
                    eventSet.name = "MOB";
                    eventSet.active = true;
                    rootEventSet.EventSet.Add(eventSet);
                    data = JsonConvert.SerializeObject(rootEventSet);
                    streamer.Write(data);

                    Thread.Sleep(1000);
                }

                if (options.CreateAWaypoint)
                {
                    DbgOutput("Create a waypoint");

                    RootEventSet rootEventSet = new RootEventSet();
                    rootEventSet.EventSet = new List<EventSet>();
                    EventSet eventSet = new EventSet();
                    eventSet.id = (int)eEvents.WaypointCreate;
                    eventSet.latitude = 50.9892;
                    eventSet.longitude = -1.4975;
                    eventSet.wpName = "Waypoint1";
                    rootEventSet.EventSet.Add(eventSet);
                    data = JsonConvert.SerializeObject(rootEventSet);
                    streamer.Write(data);

                    Thread.Sleep(1000);
                }

                if (options.ActivateSilenceAcknowledgeDeactivateAnAlarm)
                {
                    DbgOutput("Activate/Silence/Acknowledge/Deactivate an alarm");

                    RootEventSet rootEventSet = new RootEventSet();
                    rootEventSet.EventSet = new List<EventSet>();
                    EventSet eventSet = new EventSet();
            //                    eventSet.id = (int)eEvents.AlarmActivate;
                    eventSet.id = (int)eEvents.AlarmSilence;
            //                    eventSet.id = (int)eEvents.AlarmAcknowledge;
            //                    eventSet.id = (int)eEvents.AlarmDeactivate;
                    eventSet.alarmId = 5;
                    eventSet.alarmText = "Low Speed";
                    eventSet.severity = 1;
                    rootEventSet.EventSet.Add(eventSet);
                    data = JsonConvert.SerializeObject(rootEventSet);
                    streamer.Write(data);

                    Thread.Sleep(1000);
                }

                if (options.ResetATripLog)
                {
                    DbgOutput("Reset a trip log");

                    RootEventSet rootEventSet = new RootEventSet();
                    rootEventSet.EventSet = new List<EventSet>();
                    EventSet eventSet = new EventSet();
                    eventSet.id = (int)eEvents.TripLogReset;
                    eventSet.inst = 0;
                    rootEventSet.EventSet.Add(eventSet);
                    data = JsonConvert.SerializeObject(rootEventSet);
                    streamer.Write(data);

                    Thread.Sleep(1000);
                }

                if (options.RegisterForVesselsId)
                {
                    DbgOutput("Register for vessels (id)");

            //                    data = "{\"TrafficReq\":{\"subscribe\":true,\"id\":12345,\"sourceType\":0}}";
            //                    streamer.Write(data);

                    RootTrafficReq rootTrafficReq = new RootTrafficReq();
                    rootTrafficReq.TrafficReq = new TrafficReq();
                    rootTrafficReq.TrafficReq.subscribe = true;
                    rootTrafficReq.TrafficReq.id = 12345;
                    rootTrafficReq.TrafficReq.sourceType = 0;
                    data = JsonConvert.SerializeObject(rootTrafficReq);
                    streamer.Write(data);

                    Thread.Sleep(1000);
                }

                if (options.RegisterForVesselsType)
                {
                    DbgOutput("Register for vessels (type)");

            //                    data = "{\"TrafficReg\":[0,2]}";
            //                    streamer.Write(data);

                    RootTrafficReg rootTrafficReg = new RootTrafficReg();
                    rootTrafficReg.TrafficReg = new List<int>();
                    rootTrafficReg.TrafficReg.Add(0);
                    rootTrafficReg.TrafficReg.Add(2);
                    data = JsonConvert.SerializeObject(rootTrafficReg);
                    streamer.Write(data);
                }

                while (true)
                {
                    Thread.Sleep(500);

                    Console.Write("> ");
                    data = Console.ReadLine();
                    if (data == "exit")
                    {
                        break;
                    }

                    streamer.Write(data);
                }
            }
        }
Ejemplo n.º 11
0
 private static void ConfigureSettings(ParserSettings settings)
 {
     settings.MutuallyExclusive = true;
     settings.HelpWriter = System.Console.Out;
 }
Ejemplo n.º 12
0
        static void Main(string[] args)
        {
            var config = new Config();

            var settings = new CommandLine.ParserSettings(true, true, false, Console.Error);
            var parser   = new CommandLine.Parser(settings);

            string inputPath = null, outputPath = null;
            bool   isExtract = false, isRawExtract = false, isCreate = false;

            if (args.Length == 0)
            {
                // Don't try to parse zero arguments or else it results in an exception
                Console.WriteLine(config.GetUsage());
                Environment.Exit(-1);
            }

            if (parser.ParseArguments(args, config))
            {
                if (!String.IsNullOrWhiteSpace(config.InputFileRaw))
                {
                    inputPath    = config.InputFileRaw;
                    isRawExtract = true;
                    isExtract    = true;
                }
                else if (!String.IsNullOrWhiteSpace(config.InputFile))
                {
                    inputPath = config.InputFile;
                    isExtract = true;
                }
                else if (!String.IsNullOrWhiteSpace(config.InputFolder))
                {
                    inputPath = config.InputFolder;
                    isCreate  = true;
                }

                if (!String.IsNullOrWhiteSpace(config.OutputPath))
                {
                    outputPath = config.OutputPath;
                }
                else
                {
                    if (isCreate)
                    {
                        outputPath = inputPath + ".ctpk";
                    }
                    else
                    {
                        string basePath     = Path.GetDirectoryName(inputPath);
                        string baseFilename = Path.GetFileNameWithoutExtension(inputPath);

                        if (!String.IsNullOrWhiteSpace(basePath))
                        {
                            baseFilename = Path.Combine(basePath, baseFilename);
                        }

                        outputPath = baseFilename;
                    }
                }
            }

            if (isCreate)
            {
                Ctpk.Create(inputPath, outputPath);
            }
            else if (isExtract)
            {
                Ctpk.Read(inputPath, outputPath, isRawExtract);
            }
            else
            {
                Console.WriteLine("Could not find path or file '{0}'", args[0]);
            }
        }
Ejemplo n.º 13
0
 private Parser(bool singleton)
 {
     Settings = new ParserSettings(false, false, Console.Error);
 }
Ejemplo n.º 14
0
        static int Main(string[] args)
        {
            var    options = new Options();
            string verb    = "";

            object subOptions = null;
            var    ps         = new CommandLine.ParserSettings();

            IUserCredentialApplication credential = new Auth.UserCredentialApplicationFromFile();

            CommandLine.Parser parser = new CommandLine.Parser(new CommandLine.ParserSettings {
                MutuallyExclusive = true,
                CaseSensitive     = false,
                HelpWriter        = Console.Error
            });

            parser = CommandLine.Parser.Default;

            if (parser.ParseArguments(args, options, (_verb, _subOptions) =>
            {
                verb = _verb;
                subOptions = _subOptions;
            }))
            {
                (subOptions as BaseOptions).CommandLine = string.Join(" ", args);

                switch (verb)
                {
                case "upload":
                {
                    var uploadOptions = subOptions as UploadOptions;

                    if (!uploadOptions.Batch && string.IsNullOrWhiteSpace(uploadOptions.ModuleName))
                    {
                        Console.Error.Write(options.GetUsage("upload"));
                        return(-1);
                    }

                    var drive    = new IO.Google.Drive(credential);
                    var uploader = new Uploader(drive);

                    uploader.Upload(uploadOptions);
                }
                break;

                case "download":
                {
                    var drive      = new IO.Google.Drive(credential);
                    var downloader = new Downloader(drive);

                    downloader.Download(subOptions as DownloadOptions);
                }
                break;

                case "diff":
                {
                    var diffOptions = subOptions as DiffOptions;
                    var drive       = new IO.Google.Drive(credential);

                    var folder = drive.FindFolder(diffOptions.GDriveFolder);
                    ITranslationModule localModule = IO.ResX.FromResX(diffOptions.ResXDir, diffOptions.ModuleName, "en");

                    var downloader = new Downloader(drive);
                    var xlsx       = downloader.DownloadXlsx(diffOptions);

                    var _remoteModule = IO.XlsX.FromXLSX(diffOptions.FileName, "en", xlsx);
                    _remoteModule.Name = diffOptions.ModuleName;

                    ITranslationModule remoteModule = _remoteModule.FilterByTags(diffOptions.Tags);

                    TranslationModuleDiff diff = localModule.Diff(remoteModule);

                    var diffJson = Newtonsoft.Json.JsonConvert.SerializeObject(diff, Newtonsoft.Json.Formatting.Indented);
                    Console.OutputEncoding = System.Text.Encoding.UTF8;
                    Console.Write(diffJson);

                    if (diffOptions.HTML)
                    {
                        var htmlLogger = new HTMLConcatLogger();
                        diff.Print(htmlLogger);
                        var fileName = System.IO.Path.GetTempFileName() + ".html";
                        System.IO.File.WriteAllText(fileName, htmlLogger.HTML);
                        System.Diagnostics.Process.Start(fileName);
                    }
                }
                break;

                case "patch":
                {
                    var patchOptions = subOptions as PatchOptions;

                    //read patch data from stdin
                    Console.InputEncoding = System.Text.Encoding.UTF8;
                    var    jsonReader = new System.Text.StringBuilder();
                    string s;
                    while ((s = Console.ReadLine()) != null)
                    {
                        jsonReader.AppendLine(s);
                    }
                    string json = jsonReader.ToString();

                    //string json = System.IO.File.ReadAllText(@".\diff");
                    var diff = Newtonsoft.Json.JsonConvert.DeserializeObject <TranslationModuleDiff>(json);

                    TranslationModule localModule = IO.ResX.FromResX(patchOptions.ResXDir, patchOptions.ModuleName, "en");
                    localModule.Patch(diff);

                    IO.ResX.ToResX(localModule, patchOptions.ResXDir);
                }
                break;
                }
            }

            return(0);
        }
Ejemplo n.º 15
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CommandLine.Parser"/> class.
 /// </summary>
 public Parser()
 {
     Settings = new ParserSettings();
 }
Ejemplo n.º 16
0
 private static ParserResult <T> MakeParserResult <T>(ParserResult <T> parserResult, ParserSettings settings)
 {
     return(DisplayHelp(
                parserResult,
                settings.HelpWriter,
                settings.MaximumDisplayWidth));
 }
Ejemplo n.º 17
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Parser"/> class,
 /// configurable with a <see cref="ParserSettings"/> object.
 /// </summary>
 /// <param name="settings">The <see cref="ParserSettings"/> object is used to configure
 /// aspects and behaviors of the parser.</param>
 public Parser(ParserSettings settings)
 {
     Assumes.NotNull(settings, "settings", SR.ArgumentNullException_CommandLineParserSettingsInstanceCannotBeNull);
     Settings = settings;
 }
Ejemplo n.º 18
0
        static void Main(string[] args)
        {
            var commandArgs = new CommandArgs();

            var settings = new CommandLine.ParserSettings();

            settings.IgnoreUnknownArguments = false;
            CommandLine.Parser parser = new Parser(with => with.HelpWriter = Console.Error);

            // Try to parse the command line arguments
            if (parser.ParseArguments(args, commandArgs) == false)
            {
                // If we failed to parse print out the usage of this program
                Console.Write(commandArgs.GetUsage());

                return;
            }

            bool createPackage = commandArgs.CreatePackage;

            String packageOutDir = Path.Combine(commandArgs.OutDir, "ZeroLauncherPackage");

            //don't delete the old folder if we aren't creating the package (as we're only adding the id file),
            //but otherwise make sure the old content is deleted
            if (createPackage)
            {
                DeleteDirectory(commandArgs.OutDir);
            }

            Directory.CreateDirectory(commandArgs.OutDir);
            if (createPackage)
            {
                Directory.CreateDirectory(packageOutDir);
            }

            String launcherExePath = Path.Combine(commandArgs.ZeroOutDir, "ZeroLauncher.exe");

            if (commandArgs.MajorId == -1)
            {
                commandArgs.MajorId = int.Parse(QueryMajorId(launcherExePath, commandArgs.SourceDir, commandArgs.MaxTimeout));
            }

            //always create the id file
            CreateVersionIdFile(commandArgs.OutDir, commandArgs.MajorId);

            if (createPackage)
            {
                CreatePackage(commandArgs.SourceDir, commandArgs.ZeroOutDir, commandArgs.OutDir, packageOutDir);
                ZipPackage(packageOutDir, Path.Combine(commandArgs.OutDir, "ZeroLauncherPackage.zip"));
            }

            if (commandArgs.GenerateInstaller)
            {
                if (createPackage == false)
                {
                    Console.WriteLine("Generate installer requires create package");
                    return;
                }

                CopyDirectory(packageOutDir, commandArgs.ZeroOutDir);
                GenerateInstaller(commandArgs.SourceDir, commandArgs.ZeroOutDir, commandArgs.MajorId);
            }

            if (commandArgs.CreatePatch)
            {
                if (createPackage == false)
                {
                    Console.WriteLine("Generate patch requires create package");
                    return;
                }

                GeneratePatch(commandArgs.SourceDir, packageOutDir, commandArgs.MajorId, commandArgs.OutDir);
            }

            //open the package folder
            if (commandArgs.OpenExplorer && Directory.Exists(commandArgs.OutDir))
            {
                Process.Start(commandArgs.OutDir);
            }
        }
Ejemplo n.º 19
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CommandLine.Parser"/> class.
 /// </summary>
 public Parser()
 {
     _settings = new ParserSettings { Consumed = true };
 }
Ejemplo n.º 20
0
 private static ParserResult <T> MakeParserResult <T>(Func <ParserResult <T> > parseFunc, ParserSettings settings)
 {
     return(DisplayHelp(
                HandleUnknownArguments(
                    parseFunc(),
                    settings.IgnoreUnknownArguments),
                settings.HelpWriter));
 }
Ejemplo n.º 21
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Parser"/> class,
        /// configurable with <see cref="ParserSettings"/> using a delegate.
        /// </summary>
        /// <param name="configuration">The <see cref="Action&lt;ParserSettings&gt;"/> delegate used to configure
        /// aspects and behaviors of the parser.</param>
        public Parser(Action<ParserSettings> configuration)
        {
            Assumes.NotNull(configuration, "configuration", SR.ArgumentNullException_ParserSettingsDelegateCannotBeNull);

            _settings = new ParserSettings();
            configuration.Invoke(Settings);
            _settings.Consumed = true;
        }
Ejemplo n.º 22
0
 private Parser CreateTestParser(StringBuilder sb)
 {
     ParserSettings settings = new ParserSettings(new StringWriter(sb));
     return new Parser(settings);
 }