Skip to content

Commit 030100f

Browse files
committed
ES. Command Installer Fix
ES.* commands were failing due to issues in the installer script. This commit fixes the installer to ensure that all ES.* commands are installed correctly and are executable. It also updates the install-state.conf file to reflect the successful installation of the commands.
1 parent 3efaf87 commit 030100f

2 files changed

Lines changed: 98 additions & 12 deletions

File tree

scripts/install/alias/enginescript-alias-install.sh

Lines changed: 84 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,94 @@
77
# License: GPL v3.0
88
#----------------------------------------------------------------------------------
99

10-
# EngineScript Variables
11-
source /usr/local/bin/enginescript/enginescript-variables.txt || { echo "Error: Failed to source /usr/local/bin/enginescript/enginescript-variables.txt" >&2; exit 1; }
12-
source /home/EngineScript/enginescript-install-options.txt || { echo "Error: Failed to source /home/EngineScript/enginescript-install-options.txt" >&2; exit 1; }
13-
14-
# Source shared functions library
15-
source /usr/local/bin/enginescript/scripts/functions/shared/enginescript-common.sh || { echo "Error: Failed to source /usr/local/bin/enginescript/scripts/functions/shared/enginescript-common.sh" >&2; exit 1; }
16-
10+
set -euo pipefail
1711

1812
#----------------------------------------------------------------------------------
1913
# Start Main Script
2014

15+
install_exec_command() {
16+
local command_name="$1"
17+
local command_path="/usr/local/bin/${command_name}"
18+
shift
19+
20+
{
21+
printf '%s\n' '#!/usr/bin/env bash'
22+
printf 'exec'
23+
printf ' %q' "$@"
24+
printf ' "$@"\n'
25+
} > "${command_path}"
26+
27+
chmod 755 "${command_path}"
28+
chown root:root "${command_path}"
29+
}
30+
31+
install_shell_command() {
32+
local command_name="$1"
33+
local command_body="$2"
34+
local command_path="/usr/local/bin/${command_name}"
35+
36+
{
37+
printf '%s\n' '#!/usr/bin/env bash'
38+
printf '%s\n' "${command_body}"
39+
} > "${command_path}"
40+
41+
chmod 755 "${command_path}"
42+
chown root:root "${command_path}"
43+
}
44+
45+
install_exec_command "es.backup" "/usr/local/bin/enginescript/scripts/functions/alias/alias-backup.sh"
46+
install_exec_command "es.cache" "/usr/local/bin/enginescript/scripts/functions/alias/alias-cache.sh"
47+
install_exec_command "es.config" "nano" "/home/EngineScript/enginescript-install-options.txt"
48+
install_exec_command "es.debug" "/usr/local/bin/enginescript/scripts/functions/alias/alias-debug.sh"
49+
install_exec_command "es.help" "/usr/local/bin/enginescript/scripts/functions/alias/alias-help.sh"
50+
install_exec_command "es.images" "/usr/local/bin/enginescript/scripts/functions/cron/optimize-images.sh"
51+
install_exec_command "es.info" "/usr/local/bin/enginescript/scripts/functions/alias/alias-server-info.sh"
52+
install_exec_command "es.install" "/usr/local/bin/enginescript/scripts/install/enginescript-install.sh"
53+
install_exec_command "es.menu" "/usr/local/bin/enginescript/scripts/menu/enginescript-menu.sh"
54+
install_exec_command "es.permissions" "/usr/local/bin/enginescript/scripts/functions/cron/permissions.sh"
55+
install_exec_command "es.restart" "/usr/local/bin/enginescript/scripts/functions/alias/alias-restart.sh"
56+
install_exec_command "es.sites" "/usr/local/bin/enginescript/scripts/functions/alias/alias-sites.sh"
57+
install_exec_command "es.update" "/usr/local/bin/enginescript/scripts/update/enginescript-update.sh"
58+
install_exec_command "es.variables" "nano" "/usr/local/bin/enginescript/enginescript-variables.txt"
59+
60+
install_shell_command "ng.test" 'exec nginx -t -c /etc/nginx/nginx.conf "$@"'
61+
install_shell_command "ng.reload" 'set -e
62+
nginx -t -c /etc/nginx/nginx.conf
63+
exec systemctl reload nginx "$@"'
64+
install_shell_command "ng.stop" 'set -e
65+
nginx -t -c /etc/nginx/nginx.conf
66+
exec systemctl stop nginx "$@"'
67+
68+
touch /root/.bashrc
69+
tmp_bashrc="$(mktemp)"
70+
trap 'rm -f "${tmp_bashrc}"' EXIT
71+
sed \
72+
-e '/^# EngineScript command aliases$/,/^# End EngineScript command aliases$/d' \
73+
-e '/^alias enginescript=/d' \
74+
-e '/^alias es\.backup=/d' \
75+
-e '/^alias es\.cache=/d' \
76+
-e '/^alias es\.config=/d' \
77+
-e '/^alias es\.debug=/d' \
78+
-e '/^alias es\.help=/d' \
79+
-e '/^alias es\.images=/d' \
80+
-e '/^alias es\.info=/d' \
81+
-e '/^alias es\.install=/d' \
82+
-e '/^alias es\.menu=/d' \
83+
-e '/^alias es\.permissions=/d' \
84+
-e '/^alias es\.restart=/d' \
85+
-e '/^alias es\.sites=/d' \
86+
-e '/^alias es\.update=/d' \
87+
-e '/^alias es\.variables=/d' \
88+
-e '/^alias ng\.reload=/d' \
89+
-e '/^alias ng\.stop=/d' \
90+
-e '/^alias ng\.test=/d' \
91+
/root/.bashrc > "${tmp_bashrc}"
92+
cat "${tmp_bashrc}" > /root/.bashrc
93+
rm -f "${tmp_bashrc}"
94+
trap - EXIT
95+
2196
cat <<EOT >> /root/.bashrc
97+
# EngineScript command aliases
2298
alias enginescript="/usr/local/bin/enginescript/scripts/menu/enginescript-menu.sh"
2399
alias es.backup="/usr/local/bin/enginescript/scripts/functions/alias/alias-backup.sh"
24100
alias es.cache="/usr/local/bin/enginescript/scripts/functions/alias/alias-cache.sh"
@@ -37,4 +113,5 @@ alias es.variables="nano /usr/local/bin/enginescript/enginescript-variables.txt"
37113
alias ng.reload="ng.test && systemctl reload nginx"
38114
alias ng.stop="ng.test && systemctl stop nginx"
39115
alias ng.test="nginx -t -c /etc/nginx/nginx.conf"
116+
# End EngineScript command aliases
40117
EOT

setup.sh

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -212,14 +212,23 @@ chmod -R 644 "/var/log/EngineScript"/*.log
212212
# Return to /usr/src
213213
cd /usr/src || { echo "Error: Failed to change to /usr/src" >&2; exit 1; }
214214

215-
# Create EngineScript Aliases
215+
# Create EngineScript Commands
216216
source "/etc/enginescript/install-state.conf"
217-
if [[ "${ALIAS}" = 1 ]];
217+
218+
if [[ "${ALIAS:-0}" = 1 ]] && [[ -x "/usr/local/bin/es.config" ]] && [[ -x "/usr/local/bin/es.install" ]] && [[ -x "/usr/local/bin/es.menu" ]];
218219
then
219-
echo "ALIAS script has already run"
220+
echo "EngineScript command installer has already run"
220221
else
221-
/usr/local/bin/enginescript/scripts/install/alias/enginescript-alias-install.sh
222-
echo "ALIAS=1" >> /etc/enginescript/install-state.conf
222+
if /usr/local/bin/enginescript/scripts/install/alias/enginescript-alias-install.sh; then
223+
if grep -q '^ALIAS=' /etc/enginescript/install-state.conf; then
224+
sed -i 's/^ALIAS=.*/ALIAS=1/' /etc/enginescript/install-state.conf
225+
else
226+
echo "ALIAS=1" >> /etc/enginescript/install-state.conf
227+
fi
228+
else
229+
echo "Error: Failed to install EngineScript commands."
230+
exit 1
231+
fi
223232
fi
224233

225234
# Cleanup

0 commit comments

Comments
 (0)