static void ReplaceVersionPlaceholders(BuildToolsParameters parameters)
        {
            if (string.IsNullOrEmpty(parameters.TemplateFile))
            {
                Console.WriteLine("BuildTool ERROR: No template file specified.");
                return;
            }
            if (!File.Exists(parameters.TemplateFile))
            {
                Console.WriteLine("BuildTool ERROR: Template file '{0}' does not exist.", parameters.TemplateFile);
                return;
            }

            int version = parameters.IsDebug ? new Random().Next(65534) + 1 : 0;

            File.WriteAllText(parameters.TargetFile, File.ReadAllText(parameters.TemplateFile)
                              .Replace("%%nuget_version%%", parameters.NuGetVersion ?? "%%nuget_version%%")
                              .Replace("%%full_version%%", parameters.FullVersion ?? "%%full_version%%")
                              .Replace("%%shorter_version%%", ExtractShorterVersion(parameters.FullVersion) ?? "%%shorter_version%%")
                              .Replace("%%debug_version%%", version.ToString()));
        }
Пример #2
0
        static BuildToolsParameters ReadParameters(string[] args)
        {
            BuildToolsParameters parameters = new BuildToolsParameters();

            if (args != null)
            {
                foreach (string arg in args)
                {
                    string[] argParts = arg.Split(new char[] { ':' }, 2);

                    switch (argParts[0])
                    {
                        case "-version":
                            parameters.Mode = BuildToolsMode.VersionPlaceholders;
                            break;

                        case "-Debug":
                        case "-debug":
                            parameters.IsDebug = true;
                            break;

                        case "-settings":
                            if (argParts.Length > 1)
                            {
                                parameters.SettingsFile = argParts[1];
                            }
                            break;

                        case "-template":
                            if (argParts.Length > 1)
                            {
                                parameters.TemplateFile = argParts[1];
                            }
                            break;

                        case "-target":
                            if (argParts.Length > 1)
                            {
                                parameters.TargetFile = argParts[1];
                            }
                            break;
                    }
                }
            }

            if (parameters.Mode != BuildToolsMode.None)
            {
                // Read settings file
                if (File.Exists(parameters.SettingsFile))
                {
                    try
                    {
                        string[] settings = File.ReadAllLines(parameters.SettingsFile);
                        foreach (string setting in settings)
                        {
                            string[] settingParts = setting.Split(new char[] { '=' }, 2);

                            switch (settingParts[0])
                            {
                                case "nuget_version":
                                    if (settingParts.Length > 1)
                                    {
                                        parameters.NuGetVersion = settingParts[1];
                                    }
                                    break;

                                case "full_version":
                                    if (settingParts.Length > 1)
                                    {
                                        parameters.FullVersion = settingParts[1];
                                    }
                                    break;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("BuildTool ERROR: Couldn't read '{0}'. Reason:{1}{1}{2}", parameters.SettingsFile, Environment.NewLine, ex.Message);
                    }
                }
            }

            return parameters;
        }
Пример #3
0
        static void ReplaceVersionPlaceholders(BuildToolsParameters parameters)
        {
            if (string.IsNullOrEmpty(parameters.TemplateFile))
            {
                Console.WriteLine("BuildTool ERROR: No template file specified.");
                return;
            }
            if (!File.Exists(parameters.TemplateFile))
            {
                Console.WriteLine("BuildTool ERROR: Template file '{0}' does not exist.", parameters.TemplateFile);
                return;
            }

            int version = parameters.IsDebug ? new Random().Next(65534) + 1 : 0;
            File.WriteAllText(parameters.TargetFile, File.ReadAllText(parameters.TemplateFile)
                .Replace("%%nuget_version%%", parameters.NuGetVersion ?? "%%nuget_version%%")
                .Replace("%%full_version%%", parameters.FullVersion ?? "%%full_version%%")
                .Replace("%%shorter_version%%", ExtractShorterVersion(parameters.FullVersion) ?? "%%shorter_version%%")
                .Replace("%%debug_version%%", version.ToString()));
        }
        static BuildToolsParameters ReadParameters(string[] args)
        {
            BuildToolsParameters parameters = new BuildToolsParameters();

            if (args != null)
            {
                foreach (string arg in args)
                {
                    string[] argParts = arg.Split(new char[] { ':' }, 2);

                    switch (argParts[0])
                    {
                    case "-version":
                        parameters.Mode = BuildToolsMode.VersionPlaceholders;
                        break;

                    case "-Debug":
                    case "-debug":
                        parameters.IsDebug = true;
                        break;

                    case "-settings":
                        if (argParts.Length > 1)
                        {
                            parameters.SettingsFile = argParts[1];
                        }
                        break;

                    case "-template":
                        if (argParts.Length > 1)
                        {
                            parameters.TemplateFile = argParts[1];
                        }
                        break;

                    case "-target":
                        if (argParts.Length > 1)
                        {
                            parameters.TargetFile = argParts[1];
                        }
                        break;
                    }
                }
            }

            if (parameters.Mode != BuildToolsMode.None)
            {
                // Read settings file
                if (File.Exists(parameters.SettingsFile))
                {
                    try
                    {
                        string[] settings = File.ReadAllLines(parameters.SettingsFile);
                        foreach (string setting in settings)
                        {
                            string[] settingParts = setting.Split(new char[] { '=' }, 2);

                            switch (settingParts[0])
                            {
                            case "nuget_version":
                                if (settingParts.Length > 1)
                                {
                                    parameters.NuGetVersion = settingParts[1];
                                }
                                break;

                            case "full_version":
                                if (settingParts.Length > 1)
                                {
                                    parameters.FullVersion = settingParts[1];
                                }
                                break;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("BuildTool ERROR: Couldn't read '{0}'. Reason:{1}{1}{2}", parameters.SettingsFile, Environment.NewLine, ex.Message);
                    }
                }
            }

            return(parameters);
        }