|
1 |
| -#!/bin/bash |
| 1 | +#!/bin/sh |
2 | 2 | SOURCE_DIR=/usr/src
|
3 | 3 | LUA_VERSION=5.4.4
|
4 | 4 | CWD=$(pwd)
|
5 | 5 |
|
6 |
| -install_luaoauth_var=false |
7 |
| -rhel_based=false |
8 |
| -debian_based=false |
9 |
| -lua_installed=false |
| 6 | +install_luaoauth_var="false" |
| 7 | +rhel_based="false" |
| 8 | +debian_based="false" |
| 9 | +alpine_based="false" |
| 10 | +lua_installed="false" |
10 | 11 | lua_dep_dir=/usr/local/share/lua/5.4/
|
11 | 12 |
|
12 | 13 | if [ -f /etc/redhat-release ]; then
|
13 |
| - rhel_based=true |
| 14 | + echo "Red Hat based system detected" |
| 15 | + rhel_based="true" |
14 | 16 | elif [ -f /etc/debian_version ]; then
|
15 |
| - debian_based=true |
| 17 | + echo "Debian based system detected" |
| 18 | + debian_based="true" |
| 19 | +elif [ -f /etc/alpine-release ]; then |
| 20 | + echo "Alpine based system detected" |
| 21 | + alpine_based="true" |
16 | 22 | fi
|
17 | 23 |
|
| 24 | +if [ ! -e $SOURCE_DIR ]; then |
| 25 | + mkdir -p $SOURCE_DIR; |
| 26 | +fi; |
| 27 | + |
18 | 28 | cd $SOURCE_DIR
|
19 | 29 |
|
20 | 30 | display_working() {
|
21 | 31 | pid=$1
|
22 | 32 | spin='-\|/'
|
23 | 33 | i=0
|
24 |
| - while kill -0 $pid 2>/dev/null |
| 34 | + while kill -0 "$pid" 2>/dev/null |
25 | 35 | do
|
26 | 36 | i=$(( (i+1) %4 ))
|
27 | 37 | printf "\r${spin:$i:1}"
|
@@ -63,9 +73,44 @@ install_deb_lua() {
|
63 | 73 | apt-get install -y software-properties-common unzip build-essential libssl-dev lua5.4 liblua5.4-dev >/dev/null 2>&1
|
64 | 74 | }
|
65 | 75 |
|
| 76 | +install_alpine_lua() { |
| 77 | + printf "\r[+] Installing Lua\n" |
| 78 | + apk add --no-cache lua5.4 lua5.4-dev openssl-dev gcc libc-dev git make automake libtool curl unzip >/dev/null 2>&1 |
| 79 | + #?? build-base libc-dev liblua5.4-dev unzip |
| 80 | +} |
| 81 | + |
66 | 82 | # ----------------------------
|
67 | 83 | # ----------------------------
|
68 | 84 |
|
| 85 | +install_luaoauth_deps_alpine() { |
| 86 | + printf "\r[+] Installing haproxy-lua-oauth dependencies\n" |
| 87 | + |
| 88 | + if [ ! -e $lua_dep_dir ]; then |
| 89 | + mkdir -p $lua_dep_dir; |
| 90 | + fi; |
| 91 | + |
| 92 | + apt-get update >/dev/null 2>&1 |
| 93 | + apk add --no-cache lua5.4 lua5.4-dev openssl-dev gcc libc-dev git make automake libtool curl unzip >/dev/null 2>&1 |
| 94 | + |
| 95 | + cd $SOURCE_DIR |
| 96 | + |
| 97 | + curl -sLO https://github.com/rxi/json.lua/archive/refs/heads/master.zip |
| 98 | + unzip -qo master.zip && rm master.zip |
| 99 | + mv json.lua-master/json.lua $lua_dep_dir |
| 100 | + |
| 101 | + curl -sLO https://github.com/lunarmodules/luasocket/archive/refs/heads/master.zip |
| 102 | + unzip -qo master.zip && rm master.zip |
| 103 | + cd luasocket-master/ |
| 104 | + make clean all install-both LUAINC=/usr/include/lua5.4/ >/dev/null |
| 105 | + cd .. |
| 106 | + |
| 107 | + curl -sLO https://github.com/wahern/luaossl/archive/refs/heads/master.zip |
| 108 | + unzip -qo master.zip && rm master.zip |
| 109 | + cd luaossl-master/ |
| 110 | + make install >/dev/null |
| 111 | + cd .. |
| 112 | +} |
| 113 | + |
69 | 114 | install_luaoauth_deps_debian() {
|
70 | 115 | printf "\r[+] Installing haproxy-lua-oauth dependencies\n"
|
71 | 116 |
|
@@ -133,26 +178,36 @@ install_luaoauth() {
|
133 | 178 | mkdir -p $lua_dep_dir;
|
134 | 179 | fi;
|
135 | 180 |
|
136 |
| - cp $CWD/lib/*.lua $lua_dep_dir |
| 181 | + cp "$CWD"/lib/*.lua $lua_dep_dir |
137 | 182 | }
|
138 | 183 |
|
139 | 184 | case $1 in
|
140 | 185 | luaoauth)
|
141 |
| - install_luaoauth_var=true |
| 186 | + install_luaoauth_var="true" |
142 | 187 | ;;
|
143 | 188 | *)
|
144 | 189 | echo "Usage: install.sh luaoauth"
|
| 190 | + exit 1 |
| 191 | + ;; |
145 | 192 | esac
|
146 | 193 |
|
| 194 | +echo "$rhel_based" |
| 195 | + |
147 | 196 | if $install_luaoauth_var; then
|
148 | 197 | if $rhel_based; then
|
149 |
| - download_and_install_luaoauth=(install_luaoauth_deps_rhel install_luaoauth) |
| 198 | + echo "RHEL based system detected" |
| 199 | + download_and_install_luaoauth="install_luaoauth_deps_rhel install_luaoauth" |
150 | 200 | elif $debian_based; then
|
151 |
| - download_and_install_luaoauth=(install_luaoauth_deps_debian install_luaoauth) |
| 201 | + echo "Debian based system detected" |
| 202 | + download_and_install_luaoauth="install_luaoauth_deps_debian install_luaoauth" |
| 203 | + elif $alpine_based; then |
| 204 | + echo "Alpine based system detected" |
| 205 | + download_and_install_luaoauth="install_luaoauth_deps_alpine install_luaoauth" |
152 | 206 | fi
|
153 | 207 |
|
154 |
| - for func in ${download_and_install_luaoauth[*]}; do |
155 |
| - $func & |
156 |
| - display_working $! |
| 208 | + for func in $download_and_install_luaoauth; do |
| 209 | + "$func" & |
| 210 | + display_working "$!" |
157 | 211 | done
|
158 | 212 | fi
|
| 213 | + |
0 commit comments