#!/bin/sh [ "$USER" = 'root' ] && { crontab 'crontab/root.crontab' ; exit ; } mkdir -pv "$XDG_CONFIG_HOME" mkdir -pv "$XDG_DATA_HOME" mkdir -pv "$XDG_CACHE_HOME" # xmonad uses ~/.xmonad if those directories don't already exists mkdir -pv "$XMONAD_CONFIG_HOME" mkdir -pv "$XMONAD_DATA_HOME" mkdir -pv "$XMONAD_CACHE_HOME" echo '---------------------------- CONFIG FILE LINKS ---------------------------' link_home_files() { rice_dir="$1" dest_dir="$2" paths=$(mktemp) # generate a file with the file path in this repo and the link for the real path # each line is in the format: TARGET LINKNAME find "$rice_dir" -type f | sed -e 'p' -e 's:^'"$rice_dir"':'"$dest_dir"':' | awk '{ if (NR % 2 == 1) { print "'"$(pwd)"'" "/" $0 } else print }' | xargs -L 2 > "$paths" < "$paths" cut -d ' ' -f 2 | xargs -L 1 dirname | xargs -L 1 mkdir -pv < "$paths" xargs -L 1 ln -svf } link_home_files 'config' "$XDG_CONFIG_HOME" link_home_files 'local' "$HOME/.local" ln -svf "$(pwd)/config/zsh/zprofile" "$HOME/.zprofile" ################################################################################ # sync install ################################################################################ CACHARLE_SYNC_PATH="$HOME/cacharle-sync" [ -d "$CACHARLE_SYNC_PATH" ] && ln -svf "$CACHARLE_SYNC_PATH/newsboat-urls" "$XDG_CONFIG_HOME/newsboat/urls" ################################################################################ # vim plug ################################################################################ echo '---------------------------- INSTALL VIM PLUG ----------------------------' PLUGFILE="$XDG_DATA_HOME/vim/autoload/plug.vim" PLUGURL='https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' [ ! -f "$PLUGFILE" ] && curl -fLo "$PLUGFILE" --create-dirs "$PLUGURL" vim -c "PlugInstall" -c "qa" ############################################################################### # zsh pluggins ############################################################################### echo '---------------------------- INSTALL ZSH PLUGGINS ------------------------' update_zsh_plugin() { url="$1" path="$XDG_DATA_HOME/zsh/$(basename "$url")" if [ ! -d "$path" ] || [ -z "$(ls -A "$path")" ] then git clone "$url" "$path" else git -C "$path" pull fi } mkdir -p "$XDG_DATA_HOME/zsh" update_zsh_plugin 'https://github.com/sindresorhus/pure' update_zsh_plugin 'https://github.com/zsh-users/zsh-syntax-highlighting' update_zsh_plugin 'https://github.com/MichaelAquilina/zsh-you-should-use' ############################################################################### # crontab ############################################################################### echo '---------------------------- INSTALL CRONTAB -----------------------------' crontab 'crontab/user.crontab' echo 'INFO: Run this script as root if you want to install the root contab'