diff options
author | 2018-03-19 05:32:16 +0530 | |
---|---|---|
committer | 2018-03-19 06:17:58 +0530 | |
commit | 8d7a56cbaaefd6afb688a2c186fed0df62af4918 (patch) | |
tree | ee6d4c22c446639b1300297f3dbfc04f36d2dfec /nnn.c | |
parent | 5624905803c0e64a0e2fa9caf433649eb6323e52 (diff) | |
download | nnn-8d7a56cbaaefd6afb688a2c186fed0df62af4918.tar.gz |
Run a custom script support
Diffstat (limited to 'nnn.c')
-rw-r--r-- | nnn.c | 21 |
1 files changed, 15 insertions, 6 deletions
@@ -1930,11 +1930,12 @@ show_help(char *path) "eM | Full media info\n" "en | Create new\n" "d^R | Rename entry\n" - "eR | Rename dir entries\n" + "er | Open dir in vidir\n" "es | Toggle sort by size\n" "aS, ^J | Toggle du mode\n" "et | Toggle sort by mtime\n" "e! | Spawn SHELL in dir\n" + "eR | Run custom script\n" "ee | Edit entry in EDITOR\n" "eo | Open dir in file manager\n" "ep | Open entry in PAGER\n" @@ -3175,13 +3176,21 @@ nochange: case SEL_HELP: show_help(path); break; - case SEL_RUN: + case SEL_RUN: // fallthorugh + case SEL_RUNSCRIPT: run = xgetenv(env, run); - spawn(run, NULL, NULL, path, F_NORMAL | F_MARKER); - /* Continue in navigate-as-you-type mode, if enabled */ - if (cfg.filtermode) - presel = FILTER; + if (sel == SEL_RUNSCRIPT) { + tmp = getenv("NNN_SCRIPT"); + if (tmp) + spawn(run, tmp, NULL, path, F_NORMAL | F_SIGINT); + } else { + spawn(run, NULL, NULL, path, F_NORMAL | F_MARKER); + + /* Continue in navigate-as-you-type mode, if enabled */ + if (cfg.filtermode) + presel = FILTER; + } /* Save current */ if (ndents > 0) |