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
}
m() {
- echo "$*"
"$@"
}
s() { sudo "$@"; }
+v() {
+ echo "$*"
+ "$@"
+}
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
}
if grep -qxF $HOSTNAME $x; then all_dirs+=( ${x%.hosts} ); fi
done
-# old files 2022-03
-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
- s rm -fv $f
- reload_systemd=true
- fi
-done
-rm -f /etc/cron.daily/check-lets-encrypt-ssl-settings
c_dirs=(/a/c{,/machine_specific/$HOSTNAME})
case $user in
iank)
+ # old files 2022-03
+ for t in systemstatus epanicclean btrfsmaintstop dynamicipupdate; do
+ f=/etc/systemd/system/$t.timer
+ if [[ -e $f ]]; then
+ v systemctl stop $t.timer
+ v systemctl disable $t.timer
+ s rm -fv $f
+ reload_systemd=true
+ fi
+ done
+ # old 2022-04
+ 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
/p/c/machine_specific/*/filesystem/etc/openvpn/client/*.key