浏览代码

Move sub-commands to libexec

Move cub-command to libexec path to prevent calling them directly,
allowing for better control of environment.
Alois Mahdal 10 年前
父节点
当前提交
db545c4825

+ 0
- 10
bin/saturnin-ini.skel 查看文件

1
-#!/bin/bash
2
-
3
-. <(ffoom init)
4
-FFOO_INI_PATH="__SATURNIN_INI_PATH__:$SATURNIN_INI_PATH"
5
-
6
-ffoo import ini
7
-
8
-debug "\$*=$*"
9
-
10
-iniread "$@"

+ 9
- 5
bin/saturnin.skel 查看文件

2
 
2
 
3
 . <(ffoom init)
3
 . <(ffoom init)
4
 export FFOO_INI_PATH="__SATURNIN_INI_PATH__:$SATURNIN_INI_PATH"
4
 export FFOO_INI_PATH="__SATURNIN_INI_PATH__:$SATURNIN_INI_PATH"
5
+saturnin_libexec="__SATURNIN_LIBEXEC__"
5
 
6
 
6
 ffoo import exit
7
 ffoo import exit
7
 ffoo import core
8
 ffoo import core
40
 shift
41
 shift
41
 
42
 
42
 case $scmd in
43
 case $scmd in
43
-    czrates|dmenu|iam|ini|ip|ln|push|revert|watch|www)
44
-        debug -v scmd
45
-        debug "\$@='$@'"
46
-        exec saturnin-$scmd "$@" ;;
47
     help)  print_help; exit $FFOO_EXIT_OK ;;
44
     help)  print_help; exit $FFOO_EXIT_OK ;;
48
-    *)  print_help; exit $FFOO_EXIT_USAGE ;;
45
+    *)
46
+        lexpath="$saturnin_libexec/saturnin-$scmd"
47
+        debug -v lexpath
48
+        debug "\$@='$@'"
49
+        test -x "$lexpath" && exec "$lexpath" "$@"
50
+        warn "invalid sub-command: $scmd"
51
+        print_help; exit $FFOO_EXIT_USAGE
52
+        ;;
49
 esac
53
 esac

bin/saturnin-czrates → libexec/saturnin-czrates 查看文件


bin/saturnin-dmenu → libexec/saturnin-dmenu 查看文件


bin/saturnin-iam → libexec/saturnin-iam 查看文件


+ 10
- 0
libexec/saturnin-ini.skel 查看文件

1
+#!/bin/bash
2
+
3
+. <(ffoom init)
4
+
5
+ffoo import core
6
+ffoo import ini
7
+
8
+debug "\$@=$@"
9
+
10
+iniread "$@"

bin/saturnin-ip → libexec/saturnin-ip 查看文件


bin/saturnin-ln → libexec/saturnin-ln 查看文件


bin/saturnin-push → libexec/saturnin-push 查看文件


bin/saturnin-revert → libexec/saturnin-revert 查看文件


bin/saturnin-watch → libexec/saturnin-watch 查看文件


bin/saturnin-www.skel → libexec/saturnin-www.skel 查看文件


+ 24
- 10
setup/mk.sh 查看文件

9
 
9
 
10
 bindir=${DESTDIR}${PREFIX}/bin
10
 bindir=${DESTDIR}${PREFIX}/bin
11
 shrdir=${DESTDIR}${PREFIX}/share/saturnin/ffoo
11
 shrdir=${DESTDIR}${PREFIX}/share/saturnin/ffoo
12
+lexdir=${DESTDIR}${PREFIX}/libexec/saturnin
12
 
13
 
13
 list_of_bins() {
14
 list_of_bins() {
14
     echo bin/saturnin
15
     echo bin/saturnin
15
-    echo bin/saturnin-czrates
16
-    echo bin/saturnin-dmenu
17
-    echo bin/saturnin-iam
18
-    echo bin/saturnin-ini
19
-    echo bin/saturnin-ip
20
-    echo bin/saturnin-ln
21
-    echo bin/saturnin-revert
22
-    echo bin/saturnin-watch
23
-    echo bin/saturnin-www
16
+}
17
+
18
+list_of_lexs() {
19
+    echo libexec/saturnin-czrates
20
+    echo libexec/saturnin-dmenu
21
+    echo libexec/saturnin-iam
22
+    echo libexec/saturnin-ini
23
+    echo libexec/saturnin-ip
24
+    echo libexec/saturnin-ln
25
+    echo libexec/saturnin-push
26
+    echo libexec/saturnin-revert
27
+    echo libexec/saturnin-watch
28
+    echo libexec/saturnin-www
24
 }
29
 }
25
 
30
 
26
 list_of_installed_bins() {
31
 list_of_installed_bins() {
27
     list_of_bins | sed -e "s/bin/$(sed -e 's/\//\\\//g' <<<$bindir)/"
32
     list_of_bins | sed -e "s/bin/$(sed -e 's/\//\\\//g' <<<$bindir)/"
28
 }
33
 }
29
 
34
 
35
+list_of_installed_lexs() {
36
+    list_of_lexs | sed -e "s/libexec/$(sed -e 's/\//\\\//g' <<<$lexdir)/"
37
+}
38
+
30
 die() {
39
 die() {
31
     for l in "$@"; do echo "$l" >&2; done
40
     for l in "$@"; do echo "$l" >&2; done
32
     exit 9
41
     exit 9
120
     perl -pe "
129
     perl -pe "
121
         s|__SATURNIN_INI_PATH__|$SATURNIN_INI_PATH_GLOBAL:\\\$HOME/$SATURNIN_INI_PATH_USER|;
130
         s|__SATURNIN_INI_PATH__|$SATURNIN_INI_PATH_GLOBAL:\\\$HOME/$SATURNIN_INI_PATH_USER|;
122
         s|__SATURNIN_FFOO_PATH__|$shrdir|;
131
         s|__SATURNIN_FFOO_PATH__|$shrdir|;
132
+        s|__SATURNIN_LIBEXEC__|$lexdir|;
123
         s|__VERSION__|$(get_version)|;
133
         s|__VERSION__|$(get_version)|;
124
     "
134
     "
125
 }
135
 }
126
 install() {
136
 install() {
127
     mkdir -vp $bindir \
137
     mkdir -vp $bindir \
128
-              $shrdir
138
+              $shrdir \
139
+              $lexdir
129
     list_of_bins | xargs cp -vrt $bindir
140
     list_of_bins | xargs cp -vrt $bindir
130
     list_of_shrs | xargs cp -vrt $shrdir
141
     list_of_shrs | xargs cp -vrt $shrdir
142
+    list_of_lexs | xargs cp -vrt $lexdir
131
     list_of_installed_bins | xargs chmod -v 755
143
     list_of_installed_bins | xargs chmod -v 755
144
+    list_of_installed_lexs | xargs chmod -v 755
132
     test -f .autoclean && clean || :
145
     test -f .autoclean && clean || :
133
 }
146
 }
134
 
147
 
166
 uninstall() {
179
 uninstall() {
167
     list_of_installed_bins | xargs rm -vf
180
     list_of_installed_bins | xargs rm -vf
168
     rm -vrf $shrdir
181
     rm -vrf $shrdir
182
+    rm -vrf $lexdir
169
 }
183
 }
170
 
184
 
171
 case $1 in
185
 case $1 in