diff options
Diffstat (limited to 'install')
-rwxr-xr-x | install | 162 |
1 files changed, 0 insertions, 162 deletions
diff --git a/install b/install deleted file mode 100755 index 1798c834..00000000 --- a/install +++ /dev/null @@ -1,162 +0,0 @@ -#!/usr/bin/env bash - -# -# Author: Tom Ryder (@tejr) <tom@sanctum.geek.nz> -# -# This script installs @tejr's dotfiles in $HOME with symlinks into the -# expected $HOME/.dotfiles path. -# -# By default, it checks out all Git submodules, and links in configuration for -# Bash, cURL, Git, Vim, and some terminfo(5) definitions. You can supply -# additional flags to link in other configuration files: -# -# -d -- mysql(1), psql(1) -# -g -- GnuPG -# -m -- Mutt -# -n -- Ncmpcpp -# -r -- Newsbeuter -# -t -- tmux -# -w -- Wyrd -# -x -- X11 -# -# You should be prompted about replacing any file or directory that already -# exists. I have tried to make the function that does this relatively safe, but -# there are almost certainly edge cases where it might break things, especially -# on systems other than GNU/Linux or BSD. -# -# Run this at your own risk! -# -self=install - -# Replace existing file with link if user confirms -lns() { - local file=$1 link=$2 - if [[ -e $link ]] ; then - read -p "$link already exists; remove? [y/N] " confirm - case $confirm in - y*|Y*) - rm -r -- "$link" - ln -s -- "$file" "$link" - return - ;; - *) - return 1 - ;; - esac - else - ln -s -- "$file" "$link" - fi - return -} - -# Bail if we don't have git(1) -if ! hash git ; then - exit 1 -fi - -# Define dotfiles directory and check it exists -dotfiles=$HOME/.dotfiles -if ! [[ -d $dotfiles ]] ; then - printf 'install: Could not find %s!\n' "$dotfiles" >&2 - exit 1 -fi - -# Check out submodules -(cd -- "$dotfiles" && git submodule update --init) - -# Link in essential logical binaries -mkdir -p -- "$HOME"/.local/bin -lns "$dotfiles"/ack/ack "$HOME"/.local/bin/ack - -# Link in essential configuration files -mkdir -p -- "$HOME"/.config -lns "$dotfiles"/ack/ackrc "$HOME"/.ackrc -lns "$dotfiles"/bash/bash_completion "$HOME"/.config/bash_completion -lns "$dotfiles"/bash/bash_logout "$HOME"/.bash_logout -lns "$dotfiles"/bash/bash_profile "$HOME"/.bash_profile -lns "$dotfiles"/bash/bashrc "$HOME"/.bashrc -lns "$dotfiles"/bash/bashrc.d "$HOME"/.bashrc.d -lns "$dotfiles"/curl/curlrc "$HOME"/.curlrc -lns "$dotfiles"/git/gitconfig "$HOME"/.gitconfig -lns "$dotfiles"/readline/inputrc "$HOME"/.inputrc -lns "$dotfiles"/sh/profile "$HOME"/.profile -lns "$dotfiles"/sh/profile.d "$HOME"/.profile.d -lns "$dotfiles"/vim/vimrc "$HOME"/.vimrc -lns "$dotfiles"/vim "$HOME"/.vim - -# Link in shell stuff -while getopts :dgmnrtwx opt ; do - case $opt in - - # mysql(1), psql(1) - d) - lns "$dotfiles"/mysql/my.cnf "$HOME"/.my.cnf - lns "$dotfiles"/psql/psqlrc "$HOME"/.psqlrc - ;; - - # GnuPG - g) - mkdir -p -- "$HOME"/.gnupg - lns "$dotfiles"/gnupg/gpg.conf "$HOME"/.gnupg/gpg.conf - lns "$dotfiles"/gnupg/gpg-agent.conf "$HOME"/.gnupg/gpg-agent.conf - ;; - - # Mutt - m) - # Warn about some non-obvious dependencies if necessary - hash abook msmtp - - # Link in files - lns "$dotfiles"/mutt/muttrc "$HOME"/.muttrc - lns "$dotfiles"/mutt "$HOME"/.mutt - - # Create empty stubs if applicable - touch "$dotfiles"/mutt/{muttrc.local,signature} - - # Create mailboxes and cache directories - mkdir -p "$HOME"/Mail/{inbox,sent} \ - "$HOME"/.cache/mutt - ;; - - # Ncmcpp - n) - lns "$dotfiles"/ncmpcpp "$HOME"/.ncmpcpp - ;; - - # Newsbeuter - r) - mkdir -p -- "$HOME"/.config "$HOME"/.local/share/newsbeuter - lns "$dotfiles"/newsbeuter "$HOME"/.config/newsbeuter - ;; - - # Tmux - t) - lns "$dotfiles"/tmux/tmux.conf "$HOME"/.tmux.conf - ;; - - # Wyrd - w) - lns "$dotfiles"/wyrd/wyrdrc "$HOME"/.wyrdrc - ;; - - # X11 - x) - lns "$dotfiles"/i3 "$HOME"/.i3 - lns "$dotfiles"/urxvt "$HOME"/.urxvt - lns "$dotfiles"/X/Xmodmap "$HOME"/.Xmodmap - lns "$dotfiles"/X/Xresources "$HOME"/.Xresources - lns "$dotfiles"/X/xsession "$HOME"/.xsession - lns "$dotfiles"/X/xsessionrc "$HOME"/.xsessionrc - lns "$dotfiles"/vim/gvimrc "$HOME"/.gvimrc - ;; - esac -done -shift $((OPTIND-1)) - -# Compile terminfo files -if hash tic ; then - for info in "$dotfiles"/terminfo/*.info ; do - tic "$info" - done -fi - |