#!/bin/bash # # vhost-stack # https://git.stack-source.com/msb/vhost-stack # Copyright (c) 2022 Matthew Saunders Brown # 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 try-reload-or-restart $systemdConfig echo "systemd/$systemdConfig updated" echo fi done