Я пытаюсь выполнить команду в Node:
cd "/www/foo/" && "/path/to/git/bin/git.exe" config --list --global
В принципе, я хочу выполнить команду Git, которая возвращает глобальную конфигурацию (для текущего пользователя).
Это отлично работает для меня, когда я выполняю команду непосредственно на cli. Он также работает, если я делаю это в Node:
var exec = require('child_process').exec;
var config = {
maxBuffer: 10000 * 1024
};
exec('cd "/www/foo/" && "/path/to/git/bin/git.exe" config --list --global', config, function() {
console.log(arguments);
});
Однако, как только я укажу среду в config:
var exec = require('child_process').exec;
var config = {
maxBuffer: 10000 * 1024,
env: { // <--- this one
}
};
exec('cd "/www/foo/" && "/path/to/git/bin/git.exe" config --list --global', config, function() {
console.log(arguments);
});
Разрыв вещей:
Не удалось выполнить команду: fatal: невозможно прочитать файл конфигурации '(null)/(null)/. gitconfig': Нет такого файла или каталога
Я знаю причину, потому что выполненная программа Git больше не выполняется под пользовательской средой (например, в cli) и не может получить каталог пользователя для чтения глобальной конфигурации (в Git, global config = user config), и я считаю, что /(null)/(null)/.gitconfig
должен быть /Users/MyName/.gitconfig
, который существует.
Мой вопрос в том, как я могу указать текущую пользовательскую среду, сохраняя при этом мои собственные дополнительные свойства среды?