/// <summary> /// Set default values if file ConfigCli.json does not exist. /// </summary> protected override void InitConfigCli(ConfigCli configCli) { string appTypeName = UtilCli.AppTypeName(typeof(AppMain)); configCli.WebsiteList.Add(new ConfigCliWebsite() { DomainNameList = new List <ConfigCliWebsiteDomain>(new ConfigCliWebsiteDomain[] { new ConfigCliWebsiteDomain { EnvironmentName = "DEV", DomainName = "localhost", AppTypeName = appTypeName, PasswordSalt = UtilFramework.PasswordSaltConfigCreate() } }), FolderNameAngular = "Application.Website/", }); if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { // Default ConnectionString (Windows) configCli.EnvironmentGet().ConnectionStringApplication = "Data Source=localhost\\SQLEXPRESS; Initial Catalog=ApplicationDoc; Integrated Security=True;"; configCli.EnvironmentGet().ConnectionStringFramework = "Data Source=localhost\\SQLEXPRESS; Initial Catalog=ApplicationDoc; Integrated Security=True;"; } if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { // Default ConnectionString (Linux) configCli.EnvironmentGet().ConnectionStringApplication = "Data Source=localhost; Initial Catalog=ApplicationDoc; User Id=SA; Password=MyPassword;"; configCli.EnvironmentGet().ConnectionStringFramework = "Data Source=localhost; Initial Catalog=ApplicationDoc; User Id=SA; Password=MyPassword;"; } }
/// <summary> /// Write config ConnectionStringFramework and ConnectionStringApplication to ConfigCli.json and ConfigServer.json. /// </summary> private void ArgumentConnectionString() { ConfigCli configCli = ConfigCli.Load(); if (UtilCli.ArgumentValue(this, argumentConnectionString, out string connectionString)) { // Write configCli.EnvironmentGet().ConnectionStringFramework = connectionString; configCli.EnvironmentGet().ConnectionStringApplication = connectionString; ConfigCli.Save(configCli); } }
protected internal override void Execute() { CommandBuild.ConfigServerPublish(); ConfigCli configCli = ConfigCli.Load(); string deployAzureGitUrl = UtilFramework.StringNull(configCli.EnvironmentGet().DeployAzureGitUrl); // For example: "https://*****:*****@my22.scm.azurewebsites.net:443/my22.git" if (deployAzureGitUrl == null) { UtilCli.ConsoleWriteLineColor(nameof(ConfigCliEnvironment.DeployAzureGitUrl) + " not set!", System.ConsoleColor.Green); } else { string folderName = UtilFramework.FolderName + "Application.Server/"; string folderNamePublish = UtilFramework.FolderName + "Application.Server/bin/Debug/net5.0/publish/"; string folderNamePublishGit = folderNamePublish + ".git"; UtilCli.FolderDelete(folderNamePublishGit); // Undo git init. UtilCli.Start(folderNamePublish, "git", "init -b master"); // External system to push to. UtilCli.Start(folderNamePublish, "git", "config user.email \"[email protected]\""); // Prevent: Error "Please tell me who you are". See also: http://www.thecreativedev.com/solution-github-please-tell-me-who-you-are-error/ UtilCli.Start(folderNamePublish, "git", "config user.name \"Deploy\""); UtilCli.Start(folderNamePublish, "git", "config core.autocrlf false"); // Prevent "LF will be replaced by CRLF" error in stderr. UtilCli.Start(folderNamePublish, "git", "add ."); // Can throw "LF will be replaced by CRLF". UtilCli.Start(folderNamePublish, "git", "commit -m Deploy"); UtilCli.Start(folderNamePublish, "git", "remote add azure " + deployAzureGitUrl); UtilCli.Start(folderNamePublish, "git", "push azure master -f", isRedirectStdErr: true); // Do not write to stderr. Can be tested with "dotnet run -- deploy [DeployAzureGitUrl] 2>Error.txt" } }
/// <summary> /// Read or write config ConnectionStringApplication. /// </summary> private void ArgumentConnectionStringApplication() { ConfigCli configCli = ConfigCli.Load(); if (UtilCli.ArgumentValue(this, argumentConnectionStringApplication, out string connectionString)) { // Write configCli.EnvironmentGet().ConnectionStringApplication = connectionString; ConfigCli.Save(configCli); } else { // Read UtilCli.ConsoleWriteLinePassword(argumentConnectionStringApplication.Name + "=" + configCli.EnvironmentGet().ConnectionStringApplication); } }
protected internal override void Execute() { ConfigCli configCli = ConfigCli.Load(); string environmentNameOld = configCli.EnvironmentName; if (UtilCli.ArgumentValueIsExist(this, argumentName)) { if (UtilCli.ArgumentValue(this, argumentName, out string name)) { configCli.EnvironmentName = name?.ToUpper(); } } configCli.EnvironmentGet(); // Get or init if (configCli.EnvironmentName != environmentNameOld) { ConsoleWriteLineCurrentEnvironment(configCli); } ConfigCli.Save(configCli); }
protected internal override void Execute() { ConfigCli configCli = ConfigCli.Load(); // Command "json" if (UtilCli.ArgumentValueIsExist(this, argumentJson)) { if (UtilCli.ArgumentValue(this, argumentJson, out string json)) { // Set ConfigCli.json with command: ".\cli.cmd config json='{}'" json = json.Trim('\"'); // Remove quotation marks at the begin and end. json = json.Replace("'", "\""); // To use it in command prompt. // Write try { configCli = UtilFramework.ConfigFromJson <ConfigCli>(json); } catch (Exception exception) { throw new Exception("ConfigCli invalid!", exception); } ConfigCli.Save(configCli); } } // Command "deployAzureGitUrl" if (UtilCli.ArgumentValueIsExist(this, argumentDeployAzureGitUrl)) { if (UtilCli.ArgumentValue(this, argumentDeployAzureGitUrl, out string value)) { // Write configCli.EnvironmentGet().DeployAzureGitUrl = value; ConfigCli.Save(configCli); } else { // Read Console.WriteLine(argumentDeployAzureGitUrl.Name + "=" + configCli.EnvironmentGet().DeployAzureGitUrl); } return; } // Command "connectionString" if (UtilCli.ArgumentValueIsExist(this, argumentConnectionString)) { ArgumentConnectionString(); return; } // Command "connectionStringFramework" if (UtilCli.ArgumentValueIsExist(this, argumentConnectionStringFramework)) { ArgumentConnectionStringFramework(); return; } // Command "connectionStringApplication" if (UtilCli.ArgumentValueIsExist(this, argumentConnectionStringApplication)) { ArgumentConnectionStringApplication(); return; } // Command "website" if (UtilCli.ArgumentValueIsExist(this, argumentWebsite)) { ArgumentWebsite(); return; } // Print ConfigCli.json to screen { configCli = ConfigCli.Load(); Console.WriteLine(); UtilCli.ConsoleWriteLineColor("Add the following environment variable to ci build server: (Value including double quotation marks!)", ConsoleColor.Green); string json = UtilFramework.ConfigToJson(configCli, isIndented: false); json = json.Replace("\"", "'"); // To use it in command prompt. UtilCli.ConsoleWriteLineColor("ConfigCli=", ConsoleColor.DarkGreen); UtilCli.ConsoleWriteLineColor(string.Format("\"{0}\"", json), ConsoleColor.DarkGreen); Console.WriteLine(); } }