#!/bin/sh ## Home session initialization. if [ "$1" = "-h" ]; then cat <&2 Usage: ${0##*/} Initialize home folder. Options: -u: Update Go tools. EOF exit fi OPT_GO="" if [ "$1" = "-u" ]; then OPT_GO="-u" shift fi SOURCEDIR="$HOME/personal" [ -z "$XDG_CONFIG_HOME" ] && XDG_CONFIG_HOME="$HOME/.config" [ -z "$XDG_DATA_HOME" ] && XDG_DATA_HOME="$HOME/.local/share" ## ln no-clobber lnn() { if [ ! -e "$2" ] || [ -h "$2" ]; then ln -svnf "$1" "$2" fi } echo "==> 'temp' folder" mkdir -pv "$HOME/temp" echo "==> Bookmarks" mkdir -pv "$XDG_CONFIG_HOME/qutebrowser/bookmarks" lnn "$SOURCEDIR/bookmarks/bookmarks" "$XDG_CONFIG_HOME/qutebrowser/bookmarks/urls" lnn "$SOURCEDIR/bookmarks/quickmarks" "$XDG_CONFIG_HOME/qutebrowser/" if command -v emacs >/dev/null 2>&1; then echo "==> Emacs extra packages" yes | emacs --batch -l ~/.emacs.d/init.el --eval '(progn (package-refresh-contents) (package-install-selected-packages))' mkdir -pv ~/.emacs.d/site-lisp if [ -e ~/.emacs.d/site-lisp/evil-special-modes ]; then pushd ~/.emacs.d/site-lisp/evil-special-modes git pull popd else git clone https://github.com/Ambrevar/evil-special-modes ~/.emacs.d/site-lisp/evil-special-modes fi fi echo "==> Go path" mkdir -pv "$HOME/go" "$HOME/.go-tools" if command -v go >/dev/null 2>&1; then echo "==> Go extra dev tools" export GOPATH="$HOME/.go-tools" export PATH="$PATH:$GOPATH/bin" go get -v $OPT_GO -ldflags "-s -w" github.com/alecthomas/gometalinter && gometalinter -i $OPT_GO strip -s "$GOPATH"/bin/* ## See https://dominik.honnef.co/posts/2014/12/an_incomplete_list_of_go_tools/. ## https://dominik.honnef.co/go/ go get -v $OPT_GO -ldflags "-s -w" \ github.com/nsf/gocode \ github.com/rogpeppe/godef fi echo "==> Mail" lnn "$SOURCEDIR/mail/mbsyncrc" "$HOME/.mbsyncrc" mkdir -pv "$HOME/.cache/mail/" while IFS= read -r i; do ## We get a shell command, so we need to evaluate it to expand "~". eval "$i" done <