blob: ed180a2704a7a7c45756671e8ddc58faecda5687 (
plain)
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
|
#!/bin/sh
# A "filter", based on your favorite editor.
# It reads lines from stdin, opens a file containing these lines
# with your favorite editor, and then prints the content of the file
# $EDITMENU to stdout. I have configured my editor to write the
# current line to $EDITMENU when pressing ;; (semicolon twice) like this
# map ;; !!tee -a $EDITMENU^M " For nvi
# It can be used to replace dmenu or similar menu applications in
# constrained environment. It works even without any (n)curses library,
# assuming you use a suitable editor (like ed).
editor=${EDITOR:-vi}
export EDITMENU=$(mktemp)
in=$(mktemp)
cat > "$in"
# This is a dirty trick to "help" the editor (vi) understand that it can
# take over the tty to get its input.
$editor "$in" < /dev/tty
cat $EDITMENU
|