File: file_picker.sh

package info (click to toggle)
clifm 1.26.3-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 6,816 kB
  • sloc: ansic: 64,595; sh: 3,133; python: 1,851; makefile: 567
file content (36 lines) | stat: -rwxr-xr-x 904 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
#!/bin/sh

# Files picker plugin for Clifm
# Written by L. Abramovich
# License: GPL2+
#
# Description: Select files via Clifm and, at exit, write selected files to
# either stdout, if no file is specified as first parameter, or to the
# specified file otherwise.
#
# Usage example: ls -ld $(file_picker.sh)
#
# Dependencies: mktemp, cat, rm

if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
	name="${CLIFM_PLUGIN_NAME:-$(basename "$0")}"
	printf "\x1b[1mUSAGE\x1b[0m:\n  %s [FILE]\n\n" "$name" >&2
	printf "Select files via Clifm. At exit, selected files are written to STDOUT, or to FILE if specified\n" >&2
	exit 0
fi

[ -z "$CLIFM_TERM" ] && CLIFM_TERM="xterm"

SEL_FILE="$1"
[ -z "$SEL_FILE" ] && SEL_FILE=$(mktemp "${TMPDIR:-/tmp}/clifm_sel.XXXXXX")

$CLIFM_TERM -e clifm --sel-file="$SEL_FILE"

! [ -f "$SEL_FILE" ] && exit 0

if [ -z "$1" ]; then
	cat -- "$SEL_FILE"
	rm -- "$SEL_FILE"
fi

exit 0