Próbuję wykonać polecenia w węźle:Jak wykonać polecenie w NodeJS przy użyciu środowiska użytkownika?
cd "/www/foo/" && "/path/to/git/bin/git.exe" config --list --global
Zasadniczo chcę, aby wykonać polecenie Git, która zwraca globalną konfigurację (dla bieżącego użytkownika).
Działa to dobrze dla mnie, gdy wykonuję polecenie bezpośrednio na cli. Działa również jeśli robię to w ten sposób w węźle:
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);
});
jednak jak najszybciej określić środowisko do 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);
});
miejsca przerwa:
Polecenie nie powiodło się : fatal: nie można odczytać pliku konfiguracyjnego '(null)/(null) /. gitconfig': Brak takiego pliku lub katalogu
Znam przyczynę, ponieważ wykonywany program Git nie jest już uruchamiany w środowisku użytkownika (tak jak jest w cli) i nie może pobrać katalogu użytkownika do odczytu konfiguracji globalnej (w Git, global config = user config) i uważam, że /(null)/(null)/.gitconfig
powinien być /Users/MyName/.gitconfig
, który istnieje.
Moje pytanie brzmi: jak mogę określić bieżące środowisko użytkownika, nadal będąc w stanie określić własne dodatkowe właściwości środowiska?