various fixes
[distro-setup] / conflink
index 0f2e64c88450dcb2432bdb96a0024f85846fba4f..0e42e66613421055a46261f12fd21967df391e27 100755 (executable)
--- 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
 }
 
 
 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
@@ -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