diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2014-03-02 00:21:56 +1300 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2014-03-02 00:21:56 +1300 |
commit | 8e4185c725852935944a74453c2ebc1de26f4f06 (patch) | |
tree | 4ec4150e1807e35cd84d246ad7dd06fc58752f21 /install | |
parent | Simplify some command existence checks (diff) | |
download | dotfiles-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-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 - |