Sto cercando di eseguire un comando nel nodo:Come exec in NodeJS utilizzando l'ambiente dell'utente?
cd "/www/foo/" && "/path/to/git/bin/git.exe" config --list --global
Fondamentalmente, voglio eseguire un comando Git che restituisce configurazione globale (per l'utente corrente).
Questo funziona bene per me, quando eseguo il comando direttamente sul cli. Funziona anche se lo faccio come questo in nodo:
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);
});
Tuttavia, non appena ho specificare l'ambiente per la configurazione:
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);
});
cose pausa:
Comando non riuscito : fatale: impossibile leggere il file di configurazione '(null)/(null) /. gitconfig': Nessun file o directory
so il motivo, è perché il programma Git eseguito non viene più eseguita in ambiente utente (come è in CLI), e non può recuperare la directory all'utente di leggere configurazione globale (in Git, configurazione globale = user config) e credo /(null)/(null)/.gitconfig
dovrebbe essere /Users/MyName/.gitconfig
che non esiste.
La mia domanda è, come posso specificare l'ambiente dell'utente attuale pur essendo in grado di specificare le mie proprietà di ambiente aggiuntive?