aboutsummaryrefslogtreecommitdiff
path: root/install
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2014-03-02 00:21:56 +1300
committerTom Ryder <tom@sanctum.geek.nz>2014-03-02 00:21:56 +1300
commit8e4185c725852935944a74453c2ebc1de26f4f06 (patch)
tree4ec4150e1807e35cd84d246ad7dd06fc58752f21 /install
parentSimplify some command existence checks (diff)
downloaddotfiles-8e4185c725852935944a74453c2ebc1de26f4f06.tar.gz
dotfiles-8e4185c725852935944a74453c2ebc1de26f4f06.zip
Using Makefile-based install system
Just in an effort to use the right tool for the job. The new Makefile also makes more of an effort to remove and symlink files rather than whole directories, which means I shouldn't need stupid stuff in .gitignore anymore, so that's gone too.
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
-