В настоящее время я борюсь с повторным использованием процесса в golang.
Еще немного контекста: CLI, который я собираюсь использовать, будет использоваться в разработке, CLI будет использоваться, поэтому настройте среду разработки ru упростите развертывание / сборку и тестирование, поддерживая это сразу. Чтобы сделать CLI гибким, я бы хотел, чтобы пользователи могли интегрировать пользовательские сценарии. Например, один сценарий переопределяет переменные среды docker, так что сценарий развертывания CLI развертывается в правильной среде. Эти среды предоставляются с помощью следующей команды: minikube docker-env
этот сценарий выводит операторы export
в stdout
. Обычно вы запускаете eval $(minikube docker-env)
, чтобы применить эти переменные окружения к вашей текущей оболочке. Но я бы хотел, чтобы мой CLI мог совместно использовать эти переменные в сценариях.
Теперь, допустим, у меня определены две команды. A
и B
. Обе команды являются простым bash скриптом. Но может быть запущен в режиме или python, например.
Скрипт A
:
export FOO="bar"
Скрипт B
:
echo $FOO
Оба эти скрипта выполняются так:
cmd := exec.Command(bash, [PATH_TO_SCRIPT])
stdout, err := cmd.Output()
Чего я хотел бы добиться, так это того, что есть один процесс, в котором эти сценарии выполняются, но я изо всех сил пытаюсь найти способ как.
Причина, по которой я Чтобы добиться этого с помощью собственных определенных сценариев, пользователи CLI легко могут добавить сценарий и впоследствии использовать эти переменные среды.