Как получить доступ к бамбуковым переменным в C# - PullRequest
0 голосов
/ 25 марта 2020

Как получить доступ к бамбуковым переменным (переменным Плана и Ветви) в C#? В powershell я могу получить доступ, используя $ env: bamboo_variableName. Я не уверен, как я могу сделать это в C#. Это мои примеры.

Имя переменной Bamboo: vCheckoutJob

 var databaseServer = Environment.GetEnvironmentVariable("bamboo_vCheckoutJob"); //returns null
 var databaseServer = Environment.GetEnvironmentVariable("bamboo_vCheckoutJob", EnvironmentVariableTarget.Machine); // returns null

1 Ответ

1 голос
/ 25 марта 2020

Во-первых, было бы неплохо сделать некоторую обработку ошибок.

Давайте проверим, что пользователь фактически установил указанную переменную окружения c, которую мы ищем:

string bambooEnv;
bool delete_temp_env = false;

bambooEnv = Environment.GetEnvironmentVariable("bamboo_vCheckoutJob");
// Didn't exist, if necessary, create it temporarily.
if (bambooEnv == null) 
{
   Environment.SetEnvironmentVariable("bamboo_vCheckoutJob", "your_value");
   delete_temp_env = true;

   // Now retrieve it.
   bambooEnv = Environment.GetEnvironmentVariable("bamboo_vCheckoutJob");
}

// If we've created it, now delete it.
if (delete_temp_env) { 
   Environment.SetEnvironmentVariable("bamboo_vCheckoutJob", null);

   // Verify Deletion
   if (Environment.GetEnvironmentVariable("bamboo_vCheckoutJob") == null)
      Console.WriteLine("EnvVar var has been deleted again");
}  

Обернут в функцию:

public static string getEnvironmentVariable(string envVar, string fallbackValue)
{
    bool deleteTempEnv = false;
    string value = Environment.GetEnvironmentVariable(envVar);

    if (value == null)
    {
        Environment.SetEnvironmentVariable(envVar, fallbackValue);
        deleteTempEnv = true;

        value = Environment.GetEnvironmentVariable(envVar);
    }

    if (deleteTempEnv)
    {
        Environment.SetEnvironmentVariable(envVar, null);

        if (Environment.GetEnvironmentVariable(envVar) == null)
        {
            Console.WriteLine("EnvVar has been deleted again");
        }
    }

    return value;
}

Использование:

var databaseServer = getEnvironmentVariable("bamboo_vCheckoutJob", "default_path_to_server");

Что происходит?

Мы проверяем, установлена ​​ли переменная окружения, если она есть, возвращаем ее.

Если нет

Давайте создадим переменную окружения со значением по умолчанию. Если бы нам пришлось создавать переменную среды самостоятельно, не позволяет сохранять ее в системе пользователя, пока программа не запущена, и снова ее удалять.

...