Я использую инструмент joey hess 'myrepos для управления несколькими репозиториями.Передача переменных окружения myrepos (mr)
В какой-то момент я хотел бы передать переменные среды в действия и разделы, чтобы они расширялись. В частности, я передаю такие вещи, как $SYNCTL
, которые должны указывать на каталог верхнего уровня, где монтируются репозитории.
(Обратите внимание, что это не имеет ничего общего с режем верхнего уровня, как refered к по myrepos:. Это верхний уровень реж выше которого все должно быть проигнорировано, которая отличается)
К сожалению, эти переменные не расширяется.
Например, если я экспортировать SYNCTL=/home/myuser
, а затем определить репозиторий:
[$SYNCTL/myrepo]
в .mrconfig
, что в действительности никогда не найден. $SYNCTL
не имеет ничего общего, что приводит к тому, что myrepos ищет /myrepo
, который, очевидно, не существует, поэтому myrepos просто игнорирует этот раздел.
Я также попытался расширить переменную внутри секции репо, например, так:
[myrepo]
status = echo $SYNCTL
но ничего не печатает ни. В этом случае репо найдено, но печатается пустая строка.
Есть некоторые переменные, которые могут быть расширены (например, HOME
), но не все, похоже, работают. Я думал, что это как-то связано с --force-env
, но работает mr --force-env status
тоже ничего не печатает.
Есть ли способ обойти эту проблему? Должно быть?
Я ничего не знаю о myrepos, но «репо найдено, но пустая строка печатается» звучит для меня, как «SYNCTL» не экспортируется должным образом. Можете ли вы дважды проверить (например, с помощью 'env | grep SYNCTL', считая, что на самом деле это программа' env', а не оболочка, встроенная для вашей оболочки), что она экспортируется, а не просто определена локально для вашей оболочки? –
Это было так просто. Благодаря! –