Чтение переменной среды в Kotlin / Native - PullRequest
2 голосов
/ 05 марта 2019

ОК, поэтому я хочу создать собственное приложение для чтения некоторых переменных среды и, основываясь на некоторой бизнес-логике, изменить их значение на другое.Я решил сделать это в Kotlin.

Мне удалось выяснить, как изменить системную переменную среды, создав функции:

fun call(arg: String) = platform.posix.system(command)

fun setEnvironmentVariable(variable: String, value: String) {
    println("Changing value of $variable to $value")
    call("SETX $variable $value")
}

Но это только меняет значение.Я хотел бы сохранить его в переменной Kotlin и выполнить некоторые манипуляции с ним.

При вызове оператора («SET $ variable») выводится значение в командную строку, но я не могу понять, как перехватитьэто из Котлина.Я полагаю, если бы был способ извлечь выходные данные из командной строки в строку, которая облегчила бы это, даже если Windows выводит их в виде myvariable = myvalue вместо просто значения.

Заранее спасибо

1 Ответ

3 голосов
/ 05 марта 2019

Вот как читать переменную окружения в Kotlin / Native:

import platform.posix.*
import kotlinx.cinterop.*

fun main() {
    val variable = "whatever..."
    println(getenv(variable)?.toKString())
}
...