Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }