nnn/plugins/.nnn-plugin-helper
2023-02-17 20:12:07 +06:00

62 lines
1.2 KiB
Bash

#!/usr/bin/env sh
# Description: Helper script for plugins
#
# Shell: POSIX compliant
# Author: Anna Arad
selection=${NNN_SEL:-${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection}
export selection
## Set CUR_CTX to 1 to open directory in current context
CUR_CTX=0
export CUR_CTX
NNN_PREFER_SELECTION="${NNN_PREFER_SELECTION:-0}"
export NNN_PREFER_SELECTION
## Ask nnn to switch to directory $1 in context $2.
## If $2 is not provided, the function asks explicitly.
nnn_cd () {
dir="$1"
if [ -z "$NNN_PIPE" ]; then
echo "No pipe file found" 1>&2
return
fi
if [ -n "$2" ]; then
context=$2
elif [ $CUR_CTX -ne 1 ]; then
printf "Choose context 1-4 (blank for current): "
read -r context
fi
printf "%s" "${context:-0}c$dir" > "$NNN_PIPE"
}
cmd_exists () {
type "$1" > /dev/null 2>&1
echo $?
}
nnn_use_selection() {
if ! [ -s "$selection" ]; then
return 1
fi
if [ "$NNN_PREFER_SELECTION" -eq 1 ]; then
return 0
else
[ -n "$1" ] && printf "%s " "$1"
printf "(s)election/(c)urrent? [default=c] "
read -r resp__
if [ "$resp__" = "s" ]; then
return 0
else
return 1
fi
fi
}