aboutsummaryrefslogtreecommitdiff
path: root/install
diff options
context:
space:
mode:
Diffstat (limited to 'install')
-rwxr-xr-xinstall162
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
-