コード例 #1
0
ファイル: Program.cs プロジェクト: sillsdev/xliff-transforms
        static void Main(string[] args)
        {
            string action              = null;
            string rootFolder          = null;
            string product             = null;
            string buildNumber         = null;
            string edition             = "BTE";
            string basePath            = null;
            string applicationFileName = null;
            bool   showHelp            = false;

            var param = new OptionSet
            {
                { "a|Action=", "the action 'UpdateAssemblies' or 'FileComponents'",
                  v =>
                  {
                      if (new List <string> {
                            "updateassemblies", "filecomponents"
                        }.Contains(v.ToLower()))
                      {
                          action = v.ToLower();
                      }
                      else
                      {
                          throw new ArgumentException("unknown action");
                      }
                      DebugMessage("Action: {0}", action);
                  } },
                { "r|RootFolder=", "all items and subfolders are scanned for AssemblyInfo.cs",
                  v =>
                  {
                      if (Directory.Exists(v))
                      {
                          rootFolder = v;
                      }
                      else
                      {
                          throw new ArgumentException("RootFolder missing");
                      }
                      DebugMessage("RootFoler: {0}", rootFolder);
                  } },
                { "p|Product=", "name of the product (ex. 'Pathway')", v => { product = v; DebugMessage("Product: {0}", product); } },
                { "n|BuildNumber=", "the build number (ex. 1.13.4.4657)",
                  v =>
                  {
                      if (Exp.Match(v).Success)
                      {
                          buildNumber = v;
                      }
                      else
                      {
                          throw new ArgumentException("build number format error");
                      }
                      DebugMessage("BuildNumber: {0}", buildNumber);
                  } },
                { "e|Edition=", "the edition, either 'BTE' or 'SE'",
                  v =>
                  {
                      if (new List <string> {
                            "BTE", "SE"
                        }.Contains(v))
                      {
                          edition = v;
                      }
                      else
                      {
                          throw new ArgumentException("unknown edition, must be BTE or SE");
                      }
                      DebugMessage("Edition: {0}", edition);
                  } },
                { "b|BasePath=", "location of FileLibrary.xml",
                  v =>
                  {
                      if (File.Exists(Path.Combine(v, "FileLibrary.xml")))
                      {
                          basePath = v;
                      }
                      else
                      {
                          throw new ArgumentException("FileLibrary.xml not present at BasePath");
                      }
                      DebugMessage("BasePath: {0}", basePath);
                  } },
                { "f|ApplicationFileName=", "name of the application file", v => { applicationFileName = v; DebugMessage("ApplicationFileName: {0}", applicationFileName); } },
                { "h|Help", "show this message and exit",
                  v => showHelp = v != null },
                { "v", "increase debug message verbosity",
                  v => { if (v != null)
                         {
                             ++_verbosity;
                         }
                  } },
            };

            try
            {
                var extra = param.Parse(args);
                if (extra.Count != 0 || showHelp)
                {
                    ShowHelp(param);
                    return;
                }
            }
            catch (OptionException e)
            {
                Console.Write("BuildStep: ");
                Console.WriteLine(e.Message);
                Console.WriteLine("Try `BuildStep --Help' for more information.");
                return;
            }

            switch (action)
            {
            case "updateassemblies":
                var act = new UpdateAssemblies {
                    BuildNumber = buildNumber, Product = product, RootFolder = rootFolder, Edition = edition
                };
                if (!act.Execute())
                {
                    throw new ApplicationException("UpdateAssemblies Failed.");
                }
                break;

            case "filecomponents":
                var componentsAct = new FileComponents {
                    ApplicationFileName = applicationFileName, BasePath = basePath, Product = product
                };
                if (!componentsAct.Execute())
                {
                    throw new ApplicationException("FileComponents action failed.");
                }
                break;

            default:
                ShowHelp(param);
                break;
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: neilmayhew/pathway
        static void Main(string[] args)
        {
            string action = null;
            string rootFolder = null;
            string product = null;
            string buildNumber = null;
            string edition = "BTE";
            string basePath = null;
            string applicationFileName = null;
            bool showHelp = false;

            var param = new OptionSet
            {
                {"a|Action=", "the action 'UpdateAssemblies' or 'FileComponents'",
                    v =>
                    {
                        if (new List<string>{"updateassemblies", "filecomponents"}.Contains(v.ToLower()))
                            action = v.ToLower();
                        else
                            throw new ArgumentException("unknown action");
                        DebugMessage("Action: {0}", action);
                    }},
                {"r|RootFolder=", "all items and subfolders are scanned for AssemblyInfo.cs",
                    v =>
                    {
                        if (Directory.Exists(v))
                            rootFolder = v;
                        else
                            throw new ArgumentException("RootFolder missing");
                        DebugMessage("RootFoler: {0}", rootFolder);
                    }},
                {"p|Product=", "name of the product (ex. 'Pathway')", v => { product = v; DebugMessage("Product: {0}", product); }},
                {"n|BuildNumber=", "the build number (ex. 1.13.4.4657)",
                    v =>
                    {
                        if (Exp.Match(v).Success)
                            buildNumber = v;
                        else
                            throw new ArgumentException("build number format error");
                        DebugMessage("BuildNumber: {0}", buildNumber);
                    }},
                {"e|Edition=", "the edition, either 'BTE' or 'SE'",
                    v =>
                    {
                        if (new List<string>{"BTE", "SE"}.Contains(v))
                            edition = v;
                        else
                            throw new ArgumentException("unknown edition, must be BTE or SE");
                        DebugMessage("Edition: {0}", edition);
                    }},
                {"b|BasePath=", "location of FileLibrary.xml",
                    v =>
                    {
                        if (File.Exists(Path.Combine(v, "FileLibrary.xml")))
                            basePath = v;
                        else
                            throw new ArgumentException("FileLibrary.xml not present at BasePath");
                        DebugMessage("BasePath: {0}", basePath);
                    }},
                {"f|ApplicationFileName=", "name of the application file", v => { applicationFileName = v; DebugMessage("ApplicationFileName: {0}", applicationFileName); }},
                { "h|Help",  "show this message and exit", 
                   v => showHelp = v != null },
                { "v", "increase debug message verbosity",
                   v => { if (v != null) ++_verbosity; } },


            };
            try
            {
                var extra = param.Parse(args);
                if (extra.Count != 0 || showHelp)
                {
                    ShowHelp(param);
                    return;
                }
            }
            catch (OptionException e)
            {
                Console.Write("BuildStep: ");
                Console.WriteLine(e.Message);
                Console.WriteLine("Try `BuildStep --Help' for more information.");
                return;
            }

            switch (action)
            {
                case "updateassemblies":
                    var act = new UpdateAssemblies{BuildNumber = buildNumber, Product = product, RootFolder = rootFolder, Edition = edition};
                    if (!act.Execute())
                        throw new ApplicationException("UpdateAssemblies Failed.");
                    break;
                case "filecomponents":
                    var componentsAct = new FileComponents{ApplicationFileName = applicationFileName, BasePath = basePath};
                    if (!componentsAct.Execute())
                        throw new ApplicationException("FileComponents action failed.");
                    break;
                default:
                    ShowHelp(param);
                    break;
            }
        }