Files
lnx-arch/scripts/curae.sh
tuxwarrior bf308155e3 layout upd
2024-04-30 22:02:09 -05:00

123 lines
2.8 KiB
Bash

#!/usr/bin/env bash
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# what: curae is latin an means to take care. this script takes care
# of the system (adjusted for arch linux).
# author: fk
# started: may 2024
#
# nifty: https://github.com/dylanaraps/pure-bash-bible
#
# requires: tree, wget
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#############################################################################
#
# WARNING: EXAMINE THE CONTENT BEFORE EXECUTION. RUN AT YOUR OWN RISK.
#
#############################################################################
echo "<< curae.sh >>"
base_url=https://git.mz.fo/fro/lnx-arch/raw/branch/master
scripts_url=${base_url}/scripts
home_dir=/home/.curae
this_file=curae.sh
if [ "$EUID" -ne 0 ]
then echo "error: run as 'root'"
exit
fi
this_file_name=`basename "$0"`
if [ $# -lt 1 ]; then
echo "usage: '$this_file_name { dots | uf / upd-full [host] | sw / software {setup/install} [host] | us / upd-self | wp }'"
exit 1
fi
operation=$1
parameter_1=$2
parameter_2=$3
shopt -s extglob
case $operation in
!(dots|uf|upd-full|sw|software|us|upd-self|wp))
echo "error: unknown operation '$operation'"
exit
;;
esac
shopt -u extglob
# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
# helper function
execute_script() {
file=$1
parameter_1=$2
parameter_2=$3
echo "execute: ${file} ${parameter_1} ${parameter_2}"
wget -q ${scripts_url}/${file} -O /tmp/${file}
chmod 755 /tmp/*.sh
/tmp/${file} ${parameter_1} ${parameter_2}
}
# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
# update dot files
shopt -s extglob
if [ $operation == "dots" ] ; then
execute_script 99_deploy.sh dots
fi
shopt -u extglob
# install software (update system)
shopt -s extglob
if [ $operation == "sw" ] || [ $operation == "software" ] ; then
execute_script 99_software.sh ${parameter_1} ${parameter_2}
fi
shopt -u extglob
# self update, by re-downloading and overwriting itself
shopt -s extglob
if [ $operation == "us" ] || [ $operation == "upd-self" ] ; then
wget -v ${base_url}/scripts/${this_file} -O ${home_dir}/${this_file}.tmp
cp ${home_dir}/${this_file}.tmp ${home_dir}/${this_file}
rm ${home_dir}/${this_file}.tmp
chmod 755 ${home_dir}/*.sh
fi
shopt -u extglob
# full update: install software and update dots
shopt -s extglob
if [ $operation == "uf" ] || [ $operation == "upd-full" ] ; then
if [ -z "${parameter_1}" ]; then
parameter_1=$HOSTNAME
fi
if [ -z "${parameter_1}" ]; then
echo "error: missing host name"
exit 1
fi
${home_dir}/${this_file} software setup ${parameter_1}
${home_dir}/${this_file} dots
fi
shopt -u extglob
# update wallpapers
shopt -s extglob
if [ $operation == "wp" ] ; then
execute_script 99_deploy.sh wp
fi
shopt -u extglob