From 1ac4b9bd5a143622e7f0c4ad7e87a5e7e7f181ab Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Sat, 12 Dec 2020 20:02:46 +0530 Subject: [PATCH] Fix #813: plugin togglex - toggle exe mode for selection --- README.md | 2 +- plugins/README.md | 1 + plugins/togglex | 20 ++++++++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100755 plugins/togglex diff --git a/README.md b/README.md index 24ce0508..ce56877b 100644 --- a/README.md +++ b/README.md @@ -130,7 +130,7 @@ It runs smoothly on the Pi, [Termux](https://www.youtube.com/embed/AbaauM7gUJw) - Cross-dir file/all/range selection - Create (with parents), rename, duplicate files and dirs - Batch renamer for selection or dir - - List input file stream from stdin or plugin + - List input stream of file paths from stdin or plugin - Copy (as), move (as), delete, archive, link selection - Dir updates, notification on cp, mv, rm completion - Copy file paths to system clipboard on select diff --git a/plugins/README.md b/plugins/README.md index d802cffd..eba14f83 100644 --- a/plugins/README.md +++ b/plugins/README.md @@ -60,6 +60,7 @@ Plugins extend the capabilities of `nnn`. They are _executable_ scripts (or bina | [ringtone](ringtone) | Create a variable bitrate mp3 ringtone from file | sh | date, ffmpeg | | [splitjoin](splitjoin) | Split file or join selection | sh | split, cat | | [suedit](suedit) | Edit file using superuser permissions | sh | sudoedit/sudo/doas | +| [togglex](togglex) | Toggle executable mode for selection | sh | chmod | | [treeview](treeview) | Informative tree output in `$EDITOR` | sh | tree | | [uidgid](uidgid) | List user and group of all files in dir | sh | ls, less | | [upgrade](upgrade) | Upgrade nnn manually on Debian 9 Stretch | sh | curl | diff --git a/plugins/togglex b/plugins/togglex new file mode 100755 index 00000000..e2a23f41 --- /dev/null +++ b/plugins/togglex @@ -0,0 +1,20 @@ +#!/usr/bin/env sh + +# Description: Toggles executable mode for selection +# +# Dependencies: chmod +# +# Note: Works _only_ with selection (nnn can toggle the mode for the hovered file) +# +# Shell: POSIX compliant +# Author: Arun Prakash Jana + +selection=${NNN_SEL:-${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection} + +if [ ! -s "$selection" ]; then + printf "0 selected " + read -r _ + exit +fi + +xargs -0 -I {} sh -c 'if [ -x {} ] ; then chmod -x {} ; else chmod +x {} ; fi' < "$selection"