2024-04-30 07:40:24 -05:00
|
|
|
#!/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
|
2024-05-01 16:14:53 -05:00
|
|
|
echo "usage: '$this_file_name { dots | uf / upd-full [host]? | sw / software {update/install} [host]? | us / upd-self | yay | wp }'"
|
2024-04-30 07:40:24 -05:00
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
operation=$1
|
|
|
|
|
parameter_1=$2
|
|
|
|
|
parameter_2=$3
|
|
|
|
|
|
|
|
|
|
shopt -s extglob
|
|
|
|
|
case $operation in
|
2024-05-01 16:14:53 -05:00
|
|
|
!(dots|uf|upd-full|sw|software|us|upd-self|yay|wp))
|
2024-04-30 07:40:24 -05:00
|
|
|
echo "error: unknown operation '$operation'"
|
|
|
|
|
exit
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
shopt -u extglob
|
|
|
|
|
|
2024-04-30 22:02:09 -05:00
|
|
|
# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
|
|
|
|
|
|
2024-04-30 07:40:24 -05:00
|
|
|
# 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}
|
|
|
|
|
}
|
|
|
|
|
|
2024-04-30 21:34:49 -05:00
|
|
|
# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
|
2024-04-30 07:40:24 -05:00
|
|
|
|
|
|
|
|
# update dot files
|
|
|
|
|
shopt -s extglob
|
|
|
|
|
if [ $operation == "dots" ] ; then
|
|
|
|
|
|
2024-04-30 21:34:49 -05:00
|
|
|
execute_script 99_deploy.sh dots
|
2024-04-30 07:40:24 -05:00
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
shopt -u extglob
|
|
|
|
|
|
|
|
|
|
# install software (update system)
|
|
|
|
|
shopt -s extglob
|
|
|
|
|
if [ $operation == "sw" ] || [ $operation == "software" ] ; then
|
|
|
|
|
|
2024-05-01 10:56:28 -05:00
|
|
|
if [ $parameter_1 == "update" ] ; then
|
|
|
|
|
if [ -z "${parameter_2}" ]; then
|
|
|
|
|
parameter_2=$HOSTNAME
|
|
|
|
|
fi
|
2024-04-30 22:17:25 -05:00
|
|
|
fi
|
|
|
|
|
|
2024-05-01 10:51:27 -05:00
|
|
|
execute_script 99_software.sh "${parameter_1}" "${parameter_2}"
|
2024-04-30 07:40:24 -05:00
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
2024-05-01 14:10:06 -05:00
|
|
|
${home_dir}/${this_file} software update ${parameter_1}
|
2024-04-30 20:31:09 -05:00
|
|
|
${home_dir}/${this_file} dots
|
2024-04-30 07:40:24 -05:00
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
shopt -u extglob
|
|
|
|
|
|
2024-05-01 16:14:53 -05:00
|
|
|
# install yay
|
|
|
|
|
shopt -s extglob
|
|
|
|
|
if [ $operation == "yay" ] ; then
|
|
|
|
|
|
|
|
|
|
execute_script 99_yay.sh wp
|
|
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
shopt -u extglob
|
|
|
|
|
|
2024-04-30 20:41:12 -05:00
|
|
|
# update wallpapers
|
|
|
|
|
shopt -s extglob
|
|
|
|
|
if [ $operation == "wp" ] ; then
|
|
|
|
|
|
2024-04-30 21:34:49 -05:00
|
|
|
execute_script 99_deploy.sh wp
|
2024-04-30 20:41:12 -05:00
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
shopt -u extglob
|