98 lines
2.9 KiB
Bash
Executable File
98 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# vhost-stack
|
|
# https://git.stack-source.com/msb/vhost-stack
|
|
# Copyright (c) 2022 Matthew Saunders Brown <matthewsaundersbrown@gmail.com>
|
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
|
|
|
|
if [ "${EUID}" -ne 0 ]; then
|
|
echo "You must be root to run this installer."
|
|
exit
|
|
fi
|
|
|
|
# update repo
|
|
git pull
|
|
|
|
# update scripts in bin
|
|
chmod 755 bin/*
|
|
readarray -t bin_script_array < <(ls -1 bin/)
|
|
for bin_script in "${bin_script_array[@]}"; do
|
|
if [ -f /usr/local/bin/$bin_script ]; then
|
|
if ! diff -q bin/$bin_script /usr/local/bin/$bin_script ; then
|
|
echo "Updating /usr/local/bin/$bin_script"
|
|
cp bin/$bin_script /usr/local/bin/$bin_script
|
|
echo
|
|
fi
|
|
else
|
|
echo "Adding new script /usr/local/bin/$bin_script"
|
|
cp bin/$bin_script /usr/local/bin/$bin_script
|
|
echo
|
|
fi
|
|
done
|
|
|
|
# update scripts in bin
|
|
chmod 755 sbin/*
|
|
readarray -t sbin_script_array < <(ls -1 sbin/)
|
|
for sbin_script in "${sbin_script_array[@]}"; do
|
|
if [ -f /usr/local/sbin/$sbin_script ]; then
|
|
if ! diff -q sbin/$sbin_script /usr/local/sbin/$sbin_script ; then
|
|
echo "Updating /usr/local/sbin/$sbin_script"
|
|
cp sbin/$sbin_script /usr/local/sbin/$sbin_script
|
|
echo
|
|
fi
|
|
else
|
|
echo "Adding new script /usr/local/sbin/$sbin_script"
|
|
cp sbin/$sbin_script /usr/local/sbin/$sbin_script
|
|
echo
|
|
fi
|
|
done
|
|
|
|
# check etc configs for diffs
|
|
readarray -t etc_configs_array < <(find etc/ -type f)
|
|
for etc_config in "${etc_configs_array[@]}"; do
|
|
if [ -f /$etc_config ]; then
|
|
if ! diff -q $etc_config /$etc_config ; then
|
|
echo To update run:
|
|
echo diff $etc_config /$etc_config
|
|
echo cp $etc_config /$etc_config
|
|
echo
|
|
fi
|
|
else
|
|
echo "Adding new config file /$etc_config"
|
|
cp $etc_config /$etc_config
|
|
echo
|
|
fi
|
|
done
|
|
|
|
# update html/status.php
|
|
if ! diff -q html/status.php /srv/www/html/status.php ; then
|
|
cp html/status.php /srv/www/html/status.php
|
|
chmod 644 /srv/www/html/status.php
|
|
chown vhost:vhost /srv/www/html/status.php
|
|
echo "/srv/www/html/status.php updated"
|
|
echo
|
|
fi
|
|
|
|
# update libexec script
|
|
if ! diff -q libexec/command-not-found-handle /usr/local/libexec/command-not-found-handle ; then
|
|
cp libexec/command-not-found-handle /usr/local/libexec/command-not-found-handle
|
|
chmod 755 /usr/local/libexec/command-not-found-handle
|
|
echo "/usr/local/libexec/command-not-found-handle updated"
|
|
echo
|
|
fi
|
|
|
|
# check for systemd updates
|
|
systemdConfigs=(`ls -1 systemd/`)
|
|
for systemdConfig in "${systemdConfigs[@]}"
|
|
do
|
|
if ! diff -q systemd/$systemdConfig /usr/local/lib/systemd/system/$systemdConfig ; then
|
|
cp systemd/$systemdConfig /usr/local/lib/systemd/system/$systemdConfig
|
|
chmod 644 /usr/local/lib/systemd/system/$systemdConfig
|
|
systemctl daemon-reload
|
|
/systemctl --quiet is-active $systemdConfig && systemctl --quiet reload $systemdConfig
|
|
echo "systemd/$systemdConfig updated"
|
|
echo
|
|
fi
|
|
done
|