X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=conflink;h=1cefd0bd3f7bad668d25e380b717c80a51689b7e;hb=fc2a33b827a7adede9cba7728e381820857189d5;hp=0f2e64c88450dcb2432bdb96a0024f85846fba4f;hpb=01ccff895787ca94ad37d11cb93f0440a29edd7c;p=distro-setup diff --git a/conflink b/conflink index 0f2e64c..1cefd0b 100755 --- a/conflink +++ b/conflink @@ -12,33 +12,61 @@ Usage: ${0##*/} [OPTIONS] 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 @@ -97,7 +125,7 @@ common-file-setup() { case $HOSTNAME in kd) if systemctl is-active prometheus &>/dev/null; then - m s systemctl reload prometheus + v s systemctl reload prometheus fi ;; esac @@ -130,11 +158,11 @@ common-file-setup() { 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 } @@ -155,8 +183,8 @@ case $user in 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 @@ -165,7 +193,10 @@ case $user in 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 @@ -188,7 +219,7 @@ case $user in 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 @@ -214,7 +245,7 @@ case $user in ##### 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