#!/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
}