|
@@ -6,7 +6,7 @@ ffoo import inigrep
|
6
|
6
|
ffoo import pretty
|
7
|
7
|
|
8
|
8
|
usage() {
|
9
|
|
- mkusage "[name]"
|
|
9
|
+ mkusage "[-g generator_cmd] [-s selector_cmd] [-c consumer_cmd] [name]"
|
10
|
10
|
}
|
11
|
11
|
|
12
|
12
|
SATURNIN_MENU_MNAME=""
|
|
@@ -17,29 +17,40 @@ SATURNIN_MENU_CONSUMER=""
|
17
|
17
|
|
18
|
18
|
load_parts() {
|
19
|
19
|
#
|
20
|
|
- # Load mandatory parts
|
|
20
|
+ # Load mandatory parts for menu name $1
|
21
|
21
|
#
|
22
|
22
|
local mname
|
23
|
|
- mname=$(get_mname) || usage
|
|
23
|
+
|
|
24
|
+ # last chance to get mname
|
|
25
|
+ test -n "$SATURNIN_MENU_MNAME" \
|
|
26
|
+ || SATURNIN_MENU_MNAME="$(get_mname)" \
|
|
27
|
+ || usage
|
|
28
|
+ mname="$SATURNIN_MENU_MNAME"
|
|
29
|
+
|
|
30
|
+ # check that menu item exists
|
24
|
31
|
inigrep -s menu.$mname | grep -q . \
|
25
|
32
|
|| die "no such menu: $mname"
|
26
|
|
- SATURNIN_MENU_GENERATOR="$(get_generator)" \
|
|
33
|
+
|
|
34
|
+ test -n "$SATURNIN_MENU_GENERATOR" \
|
|
35
|
+ || SATURNIN_MENU_GENERATOR="$(get_generator)" \
|
27
|
36
|
|| die "cannot find generator for menu: $mname"
|
28
|
|
- SATURNIN_MENU_SELECTOR="$(get_selector)" \
|
|
37
|
+
|
|
38
|
+ test -n "$SATURNIN_MENU_SELECTOR" \
|
|
39
|
+ || SATURNIN_MENU_SELECTOR="$(get_selector)" \
|
29
|
40
|
|| die "cannot find selector for menu: $mname"
|
30
|
|
- SATURNIN_MENU_SELECT_ARGS="$(get_select_args)"
|
31
|
|
- SATURNIN_MENU_CONSUMER="$(get_consumer)" \
|
|
41
|
+
|
|
42
|
+ test -n "$SATURNIN_MENU_SELECT_ARGS" \
|
|
43
|
+ || SATURNIN_MENU_SELECT_ARGS="$(get_select_args)"
|
|
44
|
+
|
|
45
|
+ test -n "$SATURNIN_MENU_CONSUMER" \
|
|
46
|
+ || SATURNIN_MENU_CONSUMER="$(get_consumer)" \
|
32
|
47
|
|| die "cannot find consumer for menu: $mname"
|
33
|
48
|
}
|
34
|
49
|
|
35
|
50
|
get_mname() {
|
36
|
51
|
#
|
37
|
|
- # If not set, take from global INI default
|
|
52
|
+ # Take from global INI default
|
38
|
53
|
#
|
39
|
|
- test -n "$SATURNIN_MENU_MNAME" && {
|
40
|
|
- printf '%s' "$SATURNIN_MENU_MNAME"
|
41
|
|
- return 0
|
42
|
|
- }
|
43
|
54
|
inigrep -1 -p menu._default_.name | grep .
|
44
|
55
|
}
|
45
|
56
|
|
|
@@ -125,7 +136,14 @@ do_consume() {
|
125
|
136
|
eval "$SATURNIN_MENU_CONSUMER"
|
126
|
137
|
}
|
127
|
138
|
|
128
|
|
-SATURNIN_MENU_MNAME="$1"
|
|
139
|
+while true; do case "$1" in
|
|
140
|
+ -g) SATURNIN_MENU_GENERATOR="$2"; shift; shift ;;
|
|
141
|
+ -s) SATURNIN_MENU_SELECTOR="$2"; shift; shift ;;
|
|
142
|
+ -c) SATURNIN_MENU_CONSUMER="$2"; shift; shift ;;
|
|
143
|
+ -*) usage ;;
|
|
144
|
+ "") usage ;;
|
|
145
|
+ *) SATURNIN_MENU_MNAME="$1"; shift; break ;;
|
|
146
|
+esac done
|
129
|
147
|
|
130
|
148
|
load_parts
|
131
|
149
|
|