Files
lnx-arch/scripts/curae.sh
tuxwarrior a4a26d8e1c wp > dots+
2024-05-04 14:36:12 -05:00

138 lines
3.1 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 | dots+ | uf / upd-full [host]? | sw / software {update/install} [host]? | us / upd-self | yay }'"
exit 1
fi
operation=$1
parameter_1=$2
parameter_2=$3
shopt -s extglob
case $operation in
!(dots|dots+|uf|upd-full|sw|software|us|upd-self|yay))
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
# update dots+ (wallpapers, fonts, ++)
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
if [ $parameter_1 == "update" ] ; then
if [ -z "${parameter_2}" ]; then
parameter_2=$HOSTNAME
fi
fi
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 update ${parameter_1}
${home_dir}/${this_file} dots
fi
shopt -u extglob
# install yay
shopt -s extglob
if [ $operation == "yay" ] ; then
execute_script 99_yay.sh
fi
shopt -u extglob