Live Scan Grub Menu
lsgm.rwx.work
1function menu {
2 if [ "${1}" ] ; then
3 menu_load "${1}"
4 else
5 export menu
6 menu_load "${menu}"
7 fi
8}
9
10function menu_color {
11 setparams \
12 'black' 'blue' 'green' 'cyan' \
13 'red' 'magenta' 'brown' 'light-gray' \
14 'dark-gray' 'light-blue' 'light-green' 'light-cyan' \
15 'light-red' 'light-magenta' 'yellow' 'white'
16 for color in "${@}" ; do
17 menu_item "${color}"
18 done
19 unset color
20}
21
22function menu_exit {
23 env save
24 menu
25}
26
27function menu_init {
28 if [ "${menu}" ] ; then
29 if [ "${1}" ] ; then
30 menuentry "→ ${menu} → ${1}" { nop }
31 else
32 menuentry "→ ${menu}" { nop }
33 fi
34 menu_split
35 default=2
36 if env_get "${menu}" ; then
37 default="_${get}"
38 unset get
39 fi
40 fi
41}
42
43function menu_item {
44 if [ "${1}" ] ; then
45 if [ "${2}" ] ; then
46 entry="${2}"
47 else
48 entry="${1}"
49 fi
50 menuentry "${entry}" "${1}" "${menu}" --id "_${1}" {
51 ${3}="${2}"
52 menu_exit
53 }
54 unset entry
55 fi
56}
57
58function menu_load {
59 menu="${1}"
60 export menu
61 configfile "${live}/menu/${menu}.sh"
62}
63
64function menu_split {
65 if [ "${1}" ] ; then
66 menuentry '' --id "${1}" { nop }
67 else
68 menuentry '' { nop }
69 fi
70}
71
72function menu_swap {
73 if [ "${4}" ] ; then
74 menuentry "${1}" "${2}" "${3}" "${4}" {
75 if env_get "${2}" ; then
76 if [ "${get}" == "${3}" ] ; then
77 ${2}="${4}"
78 else
79 ${2}="${3}"
80 fi
81 unset get
82 menu_exit
83 fi
84 }
85 fi
86}