`function` is a bash-ism - don't use it.
Chris Pressey
8 years ago
5 | 5 | ### utility functions ### |
6 | 6 | |
7 | 7 | |
8 | function _shelf_verbose() { | |
8 | _shelf_verbose() { | |
9 | 9 | if [ -e /tmp/.shelf_verbose ]; then |
10 | 10 | echo $* |
11 | 11 | fi |
12 | 12 | } |
13 | 13 | |
14 | function _shelf_show_run() { | |
14 | _shelf_show_run() { | |
15 | 15 | echo $* |
16 | 16 | $* |
17 | 17 | } |
18 | 18 | |
19 | function _shelf_ln() { | |
19 | _shelf_ln() { | |
20 | 20 | source="$1" |
21 | 21 | dest="$2" |
22 | 22 | if [ -e "$dest" ]; then |
26 | 26 | fi |
27 | 27 | } |
28 | 28 | |
29 | function _shelf_link_stuff() { | |
29 | _shelf_link_stuff() { | |
30 | 30 | dir="$1" |
31 | 31 | subdir="$2" |
32 | 32 | find_opts="-name .git -prune -o -path Funicular/eg -prune -o -path Chrysoberyl/modules -prune -o -path Chrysoberyl/checkout -prune -o $3" |
49 | 49 | done |
50 | 50 | } |
51 | 51 | |
52 | function _shelf_link_bin() { | |
52 | _shelf_link_bin() { | |
53 | 53 | subdir="bin" |
54 | 54 | find_opts="-executable -type f" |
55 | 55 | skip_pat=".git|depcomp|configure|config.guess|*.h|*.so|*.so.*" |
56 | 56 | _shelf_link_stuff "$1" "$subdir" "$find_opts" "$skip_pat" |
57 | 57 | } |
58 | 58 | |
59 | function _shelf_link_include() { | |
59 | _shelf_link_include() { | |
60 | 60 | subdir="include" |
61 | 61 | find_opts="-name '*.h'" |
62 | 62 | skip_pat=".git" |
63 | 63 | _shelf_link_stuff "$1" "$subdir" "$find_opts" "$skip_pat" |
64 | 64 | } |
65 | 65 | |
66 | function _shelf_link_lib() { | |
66 | _shelf_link_lib() { | |
67 | 67 | subdir="lib" |
68 | 68 | find_opts="-name '*.so' -o -name '*.so.*'" |
69 | 69 | skip_pat=".git" |
74 | 74 | ### public functions ### |
75 | 75 | |
76 | 76 | |
77 | function shelf_init() { | |
77 | shelf_init() { | |
78 | 78 | export SHELF_FARM="$1" |
79 | 79 | export PATH="$SHELF_FARM/bin:$PATH" |
80 | 80 | export LD_LIBRARY_PATH="$SHELF_FARM/lib:$LD_LIBRARY_PATH" |
87 | 87 | export LUA_CPATH="$SHELF_FARM/lib/?.so;$LUA_CPATH" |
88 | 88 | } |
89 | 89 | |
90 | function shelf_link() { | |
90 | shelf_link() { | |
91 | 91 | if [ "X$1" = X ]; then |
92 | 92 | echo "Usage: shelf_link {dir}" |
93 | 93 | return 1 |
102 | 102 | done |
103 | 103 | } |
104 | 104 | |
105 | function shelf_unlink() { | |
105 | shelf_unlink() { | |
106 | 106 | if [ "X$1" = X ]; then |
107 | 107 | echo "Usage: shelf_unlink {dir}" |
108 | 108 | return 1 |
124 | 124 | done |
125 | 125 | } |
126 | 126 | |
127 | function shelf_unlink_broken() { | |
127 | shelf_unlink_broken() { | |
128 | 128 | for sub in bin include lib; do |
129 | 129 | for file in $SHELF_FARM/$sub/*; do |
130 | 130 | if [ ! -e "$file" ]; then |
134 | 134 | done |
135 | 135 | } |
136 | 136 | |
137 | function shelf_build() { | |
137 | shelf_build() { | |
138 | 138 | dir="$1" |
139 | 139 | dir=`realpath "$dir"` |
140 | 140 | if [ -x "$dir/build.sh" ]; then |