ambevar-dotfiles/.scripts/homeinit

85 lines
2.2 KiB
Bash
Executable File

#!/bin/sh
## Home session initialization.
if [ "$1" = "-h" ]; then
cat <<EOF>&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"
echo "==> 'temp' folder"
mkdir -pv "$HOME/temp"
echo "==> Abook"
ln -snfv "$SOURCEDIR/contacts" "$HOME/.abook"
echo "==> Mutt"
[ -d "$SOURCEDIR/mails" ] && ln -snf "$SOURCEDIR/mails" "$XDG_DATA_HOME/mutt"
mkdir -pv "$HOME/.cache/mutt/headers"
mkdir -pv "$HOME/.cache/mutt/messages"
echo "==> Bookmarks"
if [ -z "$BROWSER" ]; then
echo "Cannot proceed when variable BROWSER is not set."
else
case "$BROWSER" in
dwb)
BOOKMARKS="$XDG_CONFIG_HOME/$BROWSER/default/"
QUICKMARKS="$XDG_CONFIG_HOME/$BROWSER/default/" ;;
qutebrowser)
mkdir -pv "$XDG_CONFIG_HOME/$BROWSER/bookmarks"
BOOKMARKS="$XDG_CONFIG_HOME/$BROWSER/bookmarks/urls"
QUICKMARKS="$XDG_CONFIG_HOME/$BROWSER/" ;;
*)
BOOKMARKS="$XDG_CONFIG_HOME/$BROWSER/"
QUICKMARKS="$XDG_CONFIG_HOME/$BROWSER/" ;;
esac
ln -sfv "$SOURCEDIR/bookmarks/bookmarks" "$BOOKMARKS"
ln -sfv "$SOURCEDIR/bookmarks/quickmarks" "$QUICKMARKS"
fi
echo "==> Newsbeuter"
mkdir -pv "$XDG_DATA_HOME/newsbeuter"
ln -sfv "$SOURCEDIR/news/urls" "$XDG_CONFIG_HOME/newsbeuter/"
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
go get -v $OPT_GO -ldflags "-s -w" github.com/monochromegane/the_platinum_searcher/...
fi
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))'
fi