#!/bin/bash set -e cd "$(dirname "$0")/.." function dotdir() { dir=$1 source="$PWD/$dir" destination="$HOME/.$dir" chmod 700 "$source" ln -sfn "$source" "$destination" } function dotfile() { file=$1 source=$PWD/$file destination=$HOME/.$file parent_dir="$(dirname "$destination")" mkdir -p "$parent_dir" echo "linking $source to $destination" chmod 700 "$(dirname "$source")" if [ "$(basename "$parent_dir")" == 'bin' ]; then chmod 700 "$source" else chmod 600 "$source" fi ln -sfn "$source" "$destination" } function try() { "$@" 2>/dev/null || sudo "$@" } mkdir -p "$HOME/.config" "$HOME/.local/bin" "$HOME/.local/share" git submodule update --init dotdir "vim" dotfile "ackrc" dotfile "agignore" dotfile "bashrc" dotfile "config/nvim/init.vim" dotfile "ctags" dotfile "curlrc" dotfile "editrc" dotfile "gitconfig" dotfile "gitignore_global" dotfile "inputrc" dotfile "npmrc" dotfile "profile" dotfile "ssh/config" dotfile "tmux.conf" dotfile "vimrc" dotfile "wgetrc" try apt-get update -y # shellcheck disable=SC2046 try apt-get install -y --no-install-recommends $(tr '\n' ' ' < ./apt.list) command -v fd || try ln -s /usr/bin/fdfind /usr/bin/fd