File: gpgs

package info (click to toggle)
nnn 5.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,184 kB
  • sloc: ansic: 11,902; sh: 3,585; makefile: 512; cpp: 80; python: 31; csh: 2
file content (42 lines) | stat: -rwxr-xr-x 1,158 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/env sh

# Description: signs selected files using gpg.
#              includes options for clearsigning and
#              detached signing documents as well
#
#              signed and detach signed files are stored with extension .sig
#              whereas clearsigned one are stored as .asc [by default by gpg]
#
# Note: The chosen method of signing is applied to all selected files [if selection is chosen]
#
# Shell: POSIX compliant
# Author: wassup05

file=$1
selection=${NNN_SEL:-${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection}

printf "(s)election/(c)urrent? [default=c] "
read -r file_resp
printf "(s)ign/(c)learsign/(d)etach-sig? [default=s] "
read -r sig_resp

getfiles(){
    if [ "$file_resp" = "s" ]; then
        cat "$selection"
    else
        printf "%s\0" "$file"
    fi
}

if [ "$sig_resp" = "c" ]; then
    getfiles | xargs -0 -I{} gpg --clearsign {}
elif [ "$sig_resp" = "d" ]; then
    getfiles | xargs -0 -I{} gpg --detach-sig --output "{}.sig"
else
    getfiles | xargs -0 -I{} gpg --sign --output "{}.sig" {}
fi

# Clear selection
if [ "$file_resp" = "s" ] && [ -p "$NNN_PIPE" ]; then
    printf "-" > "$NNN_PIPE"
fi