Check for NCDU_SHELL environment variable when spawning shell
Check if the environment variable NCDU_SHELL is defined before the SHELL variable is checked. This makes it possible to specify a program to execute when 'b' is pressed. Setting SHELL to for example "mc" (Midnight Commander) didn't work because mc already uses SHELL to execute commands.
Этот коммит содержится в:
родитель
7ca912e452
Коммит
7be85679c5
12
doc/ncdu.pod
12
doc/ncdu.pod
@ -214,9 +214,15 @@ Refresh/recalculate the current directory.
|
||||
|
||||
Spawn shell in current directory.
|
||||
|
||||
We first check the $SHELL environment variable of the user for the preferred
|
||||
shell interpreter. If it's not set, we fall back to the compile time
|
||||
configured default shell (usually /bin/bash).
|
||||
We first check the $NCDU_SHELL environment variable of the user for the
|
||||
preferred shell interpreter. If it's not set, $SHELL is checked. If that
|
||||
variable also isn't defined, we fall back to the compile time configured
|
||||
default shell (usually /bin/bash). This allows you to specify which program to
|
||||
launch when 'b' is pressed. For example, if you want ncdu to execute the
|
||||
Midnight Commander file manager in the current directory:
|
||||
|
||||
export NCDU_SHELL=mc
|
||||
ncdu
|
||||
|
||||
=item q
|
||||
|
||||
|
@ -52,9 +52,12 @@ void shell_draw() {
|
||||
"Press any key to continue.",
|
||||
full_path, res);
|
||||
} else {
|
||||
char *shell = getenv("SHELL");
|
||||
if (shell == NULL)
|
||||
shell = DEFAULT_SHELL;
|
||||
char *shell = getenv("NCDU_SHELL");
|
||||
if (shell == NULL) {
|
||||
shell = getenv("SHELL");
|
||||
if (shell == NULL)
|
||||
shell = DEFAULT_SHELL;
|
||||
}
|
||||
|
||||
res = system(shell);
|
||||
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user