#!/bin/sh cd "$(dirname "$0")" . "$HOME/.profile" . ./lib/bootstrap # ensure required packages are installed 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 begintask "ensure dynamic theme files" s ~/.local/share/bin/mode dark endtask begintask "tidy up repository files" s yadm reflog expire --expire-unreachable=now --all &&\ s yadm gc --prune=now endtask # note: vim-plug is already installed system-wide (see ./packages-arch) begintask "installing vim plugins" COC_PLUGINS="$(jq --raw-output '.dependencies | keys | join(" ")' \ "$XDG_CONFIG_HOME/coc/extensions/package.json")" s nvim --headless +"PlugInstall --sync" +qa &&\ s nvim --headless +"CocInstall -sync $COC_PLUGINS" +qa endtask [ -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 ) ! command -v st > /dev/null && [ ! -e ~/.local/st ] && ( begintask "building st (terminal) from source" mkdir -p ~/.local cd ~/.local s git clone --depth 1 https://git.pipeframe.xyz/lonkaars/st cd st s make -j endtask ) [ "$(find ~/.ssh -name 'id*' | wc -l)" -eq 0 ] && ( begintask "generating ssh keys" s ssh-keygen -q -N "" < /dev/zero endtask ) begintask "create XDG user directories" s xdg-user-dirs-update endtask # TODO: GTK themes # TODO: OpenZone_Black cursor theme # TODO: install from scratch and see what's missing cat << EOF bootstrap finished in $(finishtime)! follow-up steps to finish setup: - install GPG keys - install nonfree fonts - clone the pass repository in ~/.local/share/pass - run the system bootstrap script in ~/.config/yadm/root/bootstrap - make the switch to microsoft edge EOF