]> git.sev.monster Git - dotfiles.git/blobdiff - install.sh
which -> command -v
[dotfiles.git] / install.sh
index 32e5b61c7a4ec8bcb01d490e9d2f6f947ab51f02..2be365166bf5495bf90bdc7deb915cecd9302cf1 100755 (executable)
@@ -25,7 +25,7 @@ fi
 # create preferred folder structure
 cd $DEST
 mkdir -p bin etc share/fonts share/themes share/icons >$devnull 2>&1
-which vim >$devnull 2>&1 && mkdir -pm 700 var/tmp/vim >$devnull 2>&1
+command -v vim >$devnull 2>&1 && mkdir -pm 700 var/tmp/vim >$devnull 2>&1
 cd $SRC >$devnull
 
 # ensure ostype
@@ -42,7 +42,8 @@ esac
 
 l() {
     # TODO: use install?
-    [ -L "$1" -o \! -e "$1" ] && ln $lnargs "$SRC/${2:-$x}" "$DEST/${1:-$x}" ||
+    d="$DEST/${1:-$x}"
+    [ -L "$d" -o \! -e "$d" ] && ln $lnargs "$SRC/${2:-$x}" "$d" ||
       echo "!!! File exists and is not a link: $1"
 }
 
@@ -51,30 +52,37 @@ find base -mindepth 1 -maxdepth 1 | while read -r x; do l "${x#base/}"; done
 find bin etc share -mindepth 1 -maxdepth 1 | while read -r x; do l; done
 
 # xorg/wayland resources
-find gui -mindepth 1 -maxdepth 1 | while read -r x; do
-    if [ "$x" = gui/fonts ]; then
-        find $x -mindepth 1 -maxdepth 2 -type d | while read -r x; do
-            which mkfontscale >$devnull 2>&1 && mkfontscale "$x"
-            which mkfontdir >$devnull 2>&1 && mkfontdir "$x"
-            [ "$(head -1 "$x/fonts.scale" >$devnull 2>&1)" = 0 ] &&
-              rm "$x/fonts.scale"
-            [ "$(head -1 "$x/fonts.dir" >$devnull 2>&1)" = 0 ] &&
-              rm "$x/fonts.dir"
-        done
-    elif [ "$x" = gui/icons ]; then
-        find $x -mindepth 1 -maxdepth 2 -type d | while read -r x; do
-            [ ! -e "$x/index.theme" ] && continue
-            which gtk-update-icon-cache >$devnull 2>&1 &&
-              gtk-update-icon-cache "$x"
-        done
-    fi
-    find "$x" -mindepth 1 -maxdepth 1 | while read -r x; do
-        l "share${x#gui}"
-    done
+find gui -mindepth 1 -maxdepth 1 | while read -r y; do
+    case "${y#gui/}" in
+        icons|themes)
+            find "$y" -mindepth 1 -maxdepth 2 -type d | while read -r x; do
+                [ ! -e "$x/index.theme" ] && continue
+                command -v gtk-update-icon-cache >$devnull 2>&1 &&
+                  gtk-update-icon-cache -f "$x"
+                l "share${y#gui}/$(basename "$x")"
+            done
+            ;;
+        fonts)
+            find "$y" -mindepth 1 -maxdepth 2 -type d | while read -r x; do
+                command -v mkfontscale >$devnull 2>&1 && mkfontscale "$x"
+                command -v mkfontdir >$devnull 2>&1 && mkfontdir "$x"
+                [ "$(head -1 "$x/fonts.scale" >$devnull 2>&1)" = 0 ] &&
+                  rm "$x/fonts.scale"
+                [ "$(head -1 "$x/fonts.dir" >$devnull 2>&1)" = 0 ] &&
+                  rm "$x/fonts.dir"
+                l "share${y#gui}/$(basename "$x")"
+            done
+            ;;
+        *)
+            find "$y" -mindepth 1 -maxdepth 1 | while read -r x; do
+                l "share${x#gui}"
+            done
+            ;;
+    esac
 done
 
 # gpg
-if which gpg >$devnull 2>&1; then
+if command -v gpg >$devnull 2>&1; then
     mkdir -p "$DEST/etc/gnupg"
     find gnupg -mindepth 1 -maxdepth 1 \! -name '*.gpg' | while read -r x; do
         l "etc/$x"
This page took 0.032264 seconds and 4 git commands to generate.