Link or otherwise install configuration files.
-f For fast. Dont use lnf, use ln -sf. Good for updating existing files.
+-v Verbose show all the files getting linked and whatnot.
EOF
exit $1
}
+s() { sudo "$@"; }
m() {
+ "$@"
+}
+v() {
echo "$*"
"$@"
}
-s() { sudo "$@"; }
lnf() { /a/exe/lnf "$@"; }
+
+
+##### begin command line parsing ########
+
+# ensure we can handle args with spaces or empty.
+ret=0; getopt -T || ret=$?
+[[ $ret == 4 ]] || { echo "Install util-linux for enhanced getopt" >&2; exit 1; }
+
fast=false
-if [[ $1 == -f ]]; then # f for fast
- fast=true
+verbose=false
+temp=$(getopt -l help hvf "$@") || usage 1
+eval set -- "$temp"
+while true; do
+ case $1 in
+ -v) verbose=true ;;
+ -f) fast=true ;;
+ -h|--help) usage ;;
+ --) shift; break ;;
+ *) echo "$0: unexpected args: $*" >&2 ; usage 1 ;;
+ esac
shift
-elif
- [[ $1 ]]; then
- echo "error: unrecognized arguments" >&2
- exit 0
-fi
+done
+readonly fast verbose
+
+##### end command line parsing ########
+
if $fast; then
lnf() { ln -sf "$@"; }
fi
+if $verbose; then
+ m() {
+ echo "$*"
+ "$@"
+ }
+fi
+
shopt -s nullglob
shopt -s extglob
shopt -s dotglob
while read -r line; do
file="${line:12}"
case $file in
- etc/prometheus/rules/iank.yml)
+ etc/prometheus/rules/iank.yml|etc/prometheus/prometheus.yml)
case $HOSTNAME in
kd)
if systemctl is-active prometheus &>/dev/null; then
- m s systemctl reload prometheus
+ v s systemctl reload prometheus
fi
;;
esac
m lnf ${x[@]} ~
done
if $reload_systemd; then
- m s systemctl daemon-reload
+ v s systemctl daemon-reload
fi
for service in ${restart_services[@]}; do
if systemctl is-active $service >/dev/null; then
- m s systemctl restart $service
+ v s systemctl restart $service
fi
done
}
for t in systemstatus epanicclean btrfsmaintstop dynamicipupdate; do
f=/etc/systemd/system/$t.timer
if [[ -e $f ]]; then
- s systemctl stop $t.timer
- s systemctl disable $t.timer
+ v systemctl stop $t.timer
+ v systemctl disable $t.timer
s rm -fv $f
reload_systemd=true
fi
if [[ -e /etc/cron.daily/check-lets-encrypt-ssl-settings ]]; then
m s rm -f /etc/cron.daily/check-lets-encrypt-ssl-settings
fi
-
+ # conversion from whole folder subdir to individual files.
+ if [[ -L /home/iank/.config/copyq ]]; then
+ rm -fv /home/iank/.config/copyq
+ fi
/a/bin/ds/install-my-scripts
files=(/p/c/machine_specific/*/filesystem/etc/ssh/*_key
m s chgrp -R bind $f
m s chmod g+w $f
fi
- sudo bash -c 'shopt -s nullglob; for f in /etc/bind/*.key /etc/bind/*.private /etc/bind/key.*; do chgrp bind $f; done'
+ s bash -c 'shopt -s nullglob; for f in /etc/bind/*.key /etc/bind/*.private /etc/bind/key.*; do chgrp bind $f; done'
if [[ -e /etc/caldav-htpasswd ]] && getent group www-data &>/dev/null; then
s chgrp www-data /etc/caldav-htpasswd
fi
##### end special extra stuff #####
if ! $fast; then
- m sudo -H -u user2 "${BASH_SOURCE[0]}"
+ m s -H -u user2 "${BASH_SOURCE[0]}"
fi
f=/a/bin/distro-setup/system-status