+ initial files
This commit is contained in:
181
scripts/curae.sh
Normal file
181
scripts/curae.sh
Normal file
@@ -0,0 +1,181 @@
|
||||
#!/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 [host] | us / upd-self }'"
|
||||
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))
|
||||
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}
|
||||
}
|
||||
|
||||
# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
|
||||
|
||||
# build package
|
||||
#shopt -s extglob
|
||||
#if [ $operation == "pkg-build" ] ; then
|
||||
#
|
||||
# if [ -z "${extra_parameter}" ]; then
|
||||
# echo "error: missing package name"
|
||||
# exit 1
|
||||
# fi
|
||||
#
|
||||
# package_dir=${pkgs_dir}/${extra_parameter}
|
||||
#
|
||||
# if ! [ -d "${package_dir}" ] ; then
|
||||
# echo "invalid path: '${package_dir}'"
|
||||
# exit 1
|
||||
# fi
|
||||
#
|
||||
# echo "building package with path: '${package_dir}'"
|
||||
# cd ${package_dir}
|
||||
# nix-build -A ${extra_parameter}
|
||||
# cd -
|
||||
#
|
||||
#fi
|
||||
#shopt -u extglob
|
||||
|
||||
# update cfg/dot files
|
||||
#shopt -s extglob
|
||||
#if [ $operation == "u" ] || [ $operation == "upd-dots" ] ; then
|
||||
#
|
||||
# execute_script 10_download_files.sh "dots-all"
|
||||
#
|
||||
# tree -D /etc/nixos
|
||||
#
|
||||
#fi
|
||||
#shopt -u extglob
|
||||
|
||||
# update dot files
|
||||
shopt -s extglob
|
||||
if [ $operation == "dots" ] ; then
|
||||
|
||||
execute_script 99_dots.sh ${parameter_1}
|
||||
|
||||
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 all
|
||||
|
||||
fi
|
||||
shopt -u extglob
|
||||
|
||||
# update and rebuild (all) without hostname
|
||||
#shopt -s extglob
|
||||
#if [ $operation == "ur" ] || [ $operation == "upd-rebuild" ] ; then
|
||||
#
|
||||
# ${home_dir}/${this_file} upd-dots
|
||||
# ${home_dir}/${this_file} rebuild ${extra_parameter}
|
||||
#
|
||||
#fi
|
||||
#shopt -u extglob
|
||||
|
||||
# rebuild system with hostname
|
||||
#shopt -s extglob
|
||||
#if [ $operation == "rh" ] || [ $operation == "rebuildh" ] ; then
|
||||
#
|
||||
# if [ -z "${extra_parameter}" ]; then
|
||||
# echo "error: missing host name"
|
||||
# exit 1
|
||||
# fi
|
||||
#
|
||||
# nixos-rebuild switch -v --show-trace --flake /etc/nixos#${extra_parameter}
|
||||
#
|
||||
#fi
|
||||
#shopt -u extglob
|
||||
|
||||
# rebuild system without hostname
|
||||
#shopt -s extglob
|
||||
#if [ $operation == "r" ] || [ $operation == "rebuild" ] ; then
|
||||
#
|
||||
# nixos-rebuild switch -v --show-trace
|
||||
#
|
||||
#fi
|
||||
#shopt -u extglob
|
||||
Reference in New Issue
Block a user