85 lines
2.2 KiB
Bash
Executable File
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
|