public VarLists PopulateVarLists(string currentDirectory) { var varLists = new VarLists { GlobalList = MakeVarList($"{currentDirectory}\\global.tfvars"), DevList = MakeVarList($"{currentDirectory}\\dev.tfvars"), QaList = MakeVarList($"{currentDirectory}\\qa.tfvars"), QtsList = MakeVarList($"{currentDirectory}\\qts.tfvars"), ProdList = MakeVarList($"{currentDirectory}\\prod.tfvars") }; return(varLists); }
public void UpsertVariable(NewVariable newVariableInfo, VarLists variableLists) { newVarInfo = newVariableInfo; varLists = variableLists; var ad = new AggregateData(); if (newVariableInfo.isEnvVar) { bool matchFound = false; ad.GlobalData = CreateVariableFileContents(varLists.GlobalList, newVarInfo.GlobalValue, out matchFound, true); if (matchFound) { throw new Exception("Variable meant for environment variables already exists in global variables."); } ad.DevData = CreateVariableFileContents(varLists.DevList, newVarInfo.DevValue, out matchFound); ad.QaData = CreateVariableFileContents(varLists.QaList, newVarInfo.QaValue, out matchFound); ad.QtsData = CreateVariableFileContents(varLists.QtsList, newVarInfo.QtsValue, out matchFound); ad.ProdData = CreateVariableFileContents(varLists.ProdList, newVarInfo.ProdValue, out matchFound); // Convert lists to strings ad.GlobalText = CreateVariableText(ad.GlobalData); ad.DevText = CreateVariableText(ad.DevData); ad.QaText = CreateVariableText(ad.QaData); ad.QtsText = CreateVariableText(ad.QtsData); ad.ProdText = CreateVariableText(ad.ProdData); // Generate VARS files ad.VariableNames = MergeAllListData(ad); ad.VariableText = CreateVarsFileData(ad.VariableNames); fileControl.SaveFileWithContent(@"dev.tfvars", ad.DevText); fileControl.SaveFileWithContent(@"qa.tfvars", ad.QaText); fileControl.SaveFileWithContent(@"qts.tfvars", ad.QtsText); fileControl.SaveFileWithContent(@"prod.tfvars", ad.ProdText); fileControl.SaveFileWithContent(@"dev\vars.tf", ad.VariableText); fileControl.SaveFileWithContent(@"qa\vars.tf", ad.VariableText); fileControl.SaveFileWithContent(@"qts\vars.tf", ad.VariableText); fileControl.SaveFileWithContent(@"prod\vars.tf", ad.VariableText); } else { bool matchFound = false; ad.DevData = CreateVariableFileContents(varLists.DevList, newVarInfo.DevValue, out matchFound, true); ad.QaData = CreateVariableFileContents(varLists.QaList, newVarInfo.QaValue, out matchFound, true); ad.QtsData = CreateVariableFileContents(varLists.QtsList, newVarInfo.QtsValue, out matchFound, true); ad.ProdData = CreateVariableFileContents(varLists.ProdList, newVarInfo.ProdValue, out matchFound, true); if (matchFound) { throw new Exception("Variable meant for global variables already exists in environment variables."); } ad.GlobalData = CreateVariableFileContents(varLists.GlobalList, newVarInfo.GlobalValue, out matchFound); // Convert lists to strings ad.GlobalText = CreateVariableText(ad.GlobalData); // Generate VARS files ad.VariableNames = MergeAllListData(ad); ad.VariableText = CreateVarsFileData(ad.VariableNames); if (string.IsNullOrWhiteSpace(ad.GlobalText) || string.IsNullOrWhiteSpace(ad.VariableText)) { throw new Exception("Something went horribly wrong! No files saved."); } fileControl.SaveFileWithContent(@"global.tfvars", ad.GlobalText); fileControl.SaveFileWithContent(@"dev\vars.tf", ad.VariableText); fileControl.SaveFileWithContent(@"qa\vars.tf", ad.VariableText); fileControl.SaveFileWithContent(@"qts\vars.tf", ad.VariableText); fileControl.SaveFileWithContent(@"prod\vars.tf", ad.VariableText); } }