shellcheck -s bash setup.sh
dblume

dblume commited on 2023-12-01 10:30:07
Showing 1 changed files, with 24 additions and 24 deletions.

... ...
@@ -1,8 +1,8 @@
1 1
 #!/usr/bin/env bash
2 2
 set -eu -o pipefail # See: https://sipb.mit.edu/doc/safe-shell/
3 3
 
4
-declare -r SCRIPT_NAME=$(basename "$BASH_SOURCE")
5
-declare -r backup_dir=$HOME/backup_of_dotfiles_$(date "+%Y-%m-%d_%H%M%S")
4
+declare -r SCRIPT_NAME=$(basename "${BASH_SOURCE[0]}")
5
+declare -r backup_dir="$HOME"/backup_of_dotfiles_$(date "+%Y-%m-%d_%H%M%S")
6 6
 declare -a dotfiles=(".bashrc" ".bash_profile" ".vimrc" ".editrc" ".gitconfig"
7 7
                      ".gitignore" ".inputrc" ".tmux.conf" ".ssh/config" ".ripgreprc"
8 8
                      ".gdbinit" ".config/gitui/key_bindings.ron" ".visidatarc"
... ...
@@ -29,23 +29,23 @@ do
29 29
   esac
30 30
 done
31 31
 
32
-if [ ! -d $backup_dir/.ssh ]; then
33
-    ((DRY_RUN==0)) && mkdir -p $backup_dir/.ssh
32
+if [ ! -d "${backup_dir}"/.ssh ]; then
33
+    ((DRY_RUN==0)) && mkdir -p "${backup_dir}"/.ssh
34 34
 fi
35 35
 
36 36
 # Move original dot files to backup
37 37
 for i in "${dotfiles[@]}"
38 38
 do
39
-    if [ -e $HOME/"$i" ]; then
40
-        if ! cmp --silent $HOME/"$i" "$i" ; then
39
+    if [ -e "$HOME"/"$i" ]; then
40
+        if ! cmp --silent "$HOME"/"$i" "$i" ; then
41 41
             echo "$i" will be changed as follows:
42
-            diff $HOME/"$i" "$i" || true
42
+            diff "$HOME"/"$i" "$i" || true
43 43
             if [ $DRY_RUN -eq 0 ]; then
44
-                mv $HOME/"$i" $backup_dir/"$i"
44
+                mv "$HOME"/"$i" "${backup_dir}"/"$i"
45 45
                 # Consider using symbolic links instead
46 46
                 # so pulling updates automatically apply
47
-                cp "$i" $HOME/"$i"
48
-                echo "# vimdiff \"$HOME/$i\" \"$backup_dir/$i\""
47
+                cp "$i" "$HOME"/"$i"
48
+                echo "# vimdiff \"$HOME/$i\" \"${backup_dir}/$i\""
49 49
             else
50 50
                 # Provide a diff that can still be used
51 51
                 echo "# vimdiff \"$i\" \"$HOME/$i\""
... ...
@@ -56,24 +56,24 @@ do
56 56
         fi
57 57
     else
58 58
         echo "$i" will be added to HOME.
59
-        ((DRY_RUN==0)) && mkdir -p $HOME/$(dirname "$i") && cp "$i" $HOME/"$i"
59
+        ((DRY_RUN==0)) && mkdir -p "$HOME"/"$(dirname "$i")" && cp "$i" "$HOME"/"$i"
60 60
     fi
61 61
 done
62 62
 
63
-if ! diff -qr $HOME/.vim .vim > /dev/null ; then
63
+if ! diff -qr "$HOME"/.vim .vim > /dev/null ; then
64 64
     if [ $DRY_RUN -eq 0 ]; then
65
-        if [ -d $HOME/.vim ]; then
66
-            mv $HOME/.vim $backup_dir
65
+        if [ -d "$HOME"/.vim ]; then
66
+            mv "$HOME"/.vim "${backup_dir}"
67 67
         fi
68
-        cp -r .vim $HOME
69
-        if [ -d $backup_dir/.vim ]; then
68
+        cp -r .vim "$HOME"
69
+        if [ -d "${backup_dir}"/.vim ]; then
70 70
             # Copy back proprietary file types (ex. ftdetect/my.vim), if any.
71 71
             # Print only the files that got moved back into ~/.vim
72
-            cp -rnv $backup_dir/.vim $HOME | grep " -> " | cut -d " " -f3 | \
72
+            cp -rnv "${backup_dir}"/.vim "$HOME" | grep " -> " | cut -d " " -f3 | \
73 73
                 xargs -I{} sh -c "test -f {} && echo Restored {}" || true
74 74
         fi
75 75
     fi
76
-    if [[ -d $backup_dir/.vim ]]; then
76
+    if [[ -d "${backup_dir}"/.vim ]]; then
77 77
         if ! diff -qr "$backup_dir/.vim" "$HOME/.vim" ; then
78 78
             echo "# diff -qr \"$backup_dir/.vim\" \"$HOME/.vim\""
79 79
             echo
... ...
@@ -81,30 +81,30 @@ if ! diff -qr $HOME/.vim .vim > /dev/null ; then
81 81
             echo No change to the .vim/ directories after restoring proprietary files.
82 82
         fi
83 83
     else
84
-        echo No $backup_dir/.vim/ from which to restore proprietary files \(yet\).
84
+        echo No "${backup_dir}"/.vim/ from which to restore proprietary files \(yet\).
85 85
     fi
86 86
 else
87 87
     echo No change to the .vim/ directories.
88 88
 fi
89 89
 
90 90
 # Make a directory for vim undo
91
-if [ ! -d $HOME/.vim_undo ]; then
92
-    ((DRY_RUN==0)) && mkdir -p $HOME/.vim_undo
91
+if [ ! -d "$HOME"/.vim_undo ]; then
92
+    ((DRY_RUN==0)) && mkdir -p "$HOME"/.vim_undo
93 93
 fi
94 94
 
95 95
 # I have device local secrets in .localrc and a github secret in .gitconfig.local
96 96
 for i in ".gitconfig.local" ".localrc"
97 97
 do
98
-    if [ ! -f $HOME/"$i" ]; then
98
+    if [ ! -f "$HOME"/"$i" ]; then
99 99
         echo Consider copying $i from a similar acct. \(\'touch \"\$HOME/$i\"\' to hide this msg.\)
100 100
     fi
101 101
 done
102 102
 
103 103
 if [ $DRY_RUN -eq 0 ]; then
104
-    echo Your old dotfiles are backed up to $backup_dir
104
+    echo Your old dotfiles are backed up to "${backup_dir}"
105 105
     echo Done. Check http://config.dlma.com for more.
106 106
 else
107
-    echo Your old dotfiles would have been backed up to $backup_dir
107
+    echo Your old dotfiles would have been backed up to "${backup_dir}"
108 108
     echo Dry run completed.
109 109
 fi
110 110
 
111 111