From 8e4185c725852935944a74453c2ebc1de26f4f06 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sun, 2 Mar 2014 00:21:56 +1300 Subject: 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. --- install | 162 ---------------------------------------------------------------- 1 file changed, 162 deletions(-) delete mode 100755 install (limited to 'install') 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) -# -# 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 - -- cgit v1.2.3