aboutsummaryrefslogtreecommitdiff
path: root/.config/yadm/bootstrap
diff options
context:
space:
mode:
Diffstat (limited to '.config/yadm/bootstrap')
-rwxr-xr-x.config/yadm/bootstrap70
1 files changed, 59 insertions, 11 deletions
diff --git a/.config/yadm/bootstrap b/.config/yadm/bootstrap
index 9a03f58..57461bc 100755
--- a/.config/yadm/bootstrap
+++ b/.config/yadm/bootstrap
@@ -1,26 +1,74 @@
#!/bin/sh
+TIMESTART="$(date +%s)"
. "$HOME/.profile"
+unset LANG # do not display custom locale in TTY
+
+begintask() {
+ printf '%s ...' "$1"
+}
+endtask() {
+ EXIT_CODE=$?
+ [ $EXIT_CODE -eq 0 ] && echo ' OK' || echo ' ERROR'
+ return $EXIT_CODE
+}
+s() { # s for silent
+ "$@" 1> /dev/null 2> /dev/null
+}
# ensure required packages are installed
-"$XDG_CONFIG_HOME/yadm/install-arch"
+begintask "installing packages"
+"$XDG_CONFIG_HOME/yadm/install-arch" > pkgs.log 2>&1
+endtask
+[ $? -eq 0 ] && rm -f pkgs.log || echo " (saved output to pkgs.log)"
+
+begintask "render templated files"
+s yadm alt
+endtask
-# generate templated files
-yadm alt
+begintask "ensure dynamic theme files"
+s ~/.local/share/bin/mode dark
+endtask
-# create remaining dynamic theme files
-~/.local/share/bin/mode dark
+begintask "tidy up repository files"
+s yadm reflog expire --expire-unreachable=now --all &&\
+s yadm gc --prune=now
+endtask
-# remove unreachable blobs
-yadm reflog expire --expire-unreachable=now --all
-yadm gc --prune=now
+[ -e "$HOME/readme.md" ] ||\
+[ $(yadm status -s "$HOME/readme.md" | wc -l) -gt 0 ] && (
+ begintask "removing readme.md from home"
+ cd
+ rm -f readme.md &&\
+ yadm update-index --skip-worktree readme.md
+ endtask
+)
-# download and build st (terminal) if not present
! command -v st > /dev/null && [ ! -e ~/.local/st ] && (
+ begintask "building st (terminal) from source"
mkdir -p ~/.local
cd ~/.local
- git clone https://git.pipeframe.xyz/lonkaars/st
+ s git clone --depth 1 https://git.pipeframe.xyz/lonkaars/st
cd st
- make -j
+ s make -j
+ endtask
+)
+
+[ "$(find ~/.ssh -name 'id*' | wc -l)" -eq 0 ] && (
+ begintask "generating ssh keys"
+ s ssh-keygen -q -N "" < /dev/zero
+ endtask
)
# TODO: create a second repository for system configuration in /etc
+
+TIMESTOP="$(date +%s)"
+cat << EOF
+
+bootstrap finished in $(( $TIMESTOP - $TIMESTART ))s!
+
+follow-up steps to finish setup:
+ - install GPG keys
+ - install fonts
+ - make the switch to microsoft edge
+
+EOF