Skip to content
Snippets Groups Projects
Commit 7be85679 authored by Øyvind A. Holm's avatar Øyvind A. Holm
Browse files

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.
parent 7ca912e4
No related branches found
No related tags found
No related merge requests found
......@@ -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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment