diff options
| author | Camil Staps | 2017-01-11 19:16:39 +0100 | 
|---|---|---|
| committer | Camil Staps | 2017-01-11 19:16:39 +0100 | 
| commit | bb16f1b86c32d13df7be7245a871c4f191b7e5d4 (patch) | |
| tree | ce42e2f3db5b0badbe5bd822de532a78c25f2622 /script/bootstrap | |
| parent | cleanup (diff) | |
Stowify repo
Diffstat (limited to 'script/bootstrap')
| -rwxr-xr-x | script/bootstrap | 234 | 
1 files changed, 0 insertions, 234 deletions
| diff --git a/script/bootstrap b/script/bootstrap deleted file mode 100755 index 1acfd22..0000000 --- a/script/bootstrap +++ /dev/null @@ -1,234 +0,0 @@ -#!/usr/bin/env bash -# -# bootstrap installs things. - -cd "$(dirname "$0")/.." -DOTFILES_ROOT=$(pwd -P) - -set -e - -echo '' - -info () { -  printf "\r  [ \033[00;34m..\033[0m ] $1\n" -} - -user () { -  printf "\r  [ \033[0;33m??\033[0m ] $1\n" -} - -success () { -  printf "\r\033[2K  [ \033[00;32mOK\033[0m ] $1\n" -} - -fail () { -  printf "\r\033[2K  [\033[0;31mFAIL\033[0m] $1\n" -  echo '' -  exit -} - -setup_gitconfig () { -  if ! [ -f git/gitconfig.symlink ] -  then -    info 'setup gitconfig' - -    git_credential='cache --timeout=3600' -    if [ "$(uname -s)" == "Darwin" ] -    then -      git_credential='osxkeychain' -    fi - -    user ' - What is your github author name?' -    read -e git_authorname -    user ' - What is your github author email?' -    read -e git_authoremail - -    sed -e "s/AUTHORNAME/$git_authorname/g" -e "s/AUTHOREMAIL/$git_authoremail/g" -e "s/GIT_CREDENTIAL_HELPER/$git_credential/g" git/gitconfig.symlink.example > git/gitconfig.symlink - -    success 'gitconfig' -  fi -} - - -link_directory () { -  local src=$1 dst=$2 - -  local overwrite= backup= skip= remove= -  local action= - -  if [ -f "$dst" -o -L "$dst" ] -  then - -    if [ "$overwrite_all" == "false" ] && [ "$backup_all" == "false" ] && [ "$skip_all" == "false" ] -    then -       -      user "Directory already exists: $dst ($(basename "$src")), what do you want to do?\n\ -      [s]kip, [r]emove, [b]ackup?" -      read -n 1 action - -      case "$action" in -        s ) -          skip=true;; -        r ) -          remove=true;; -        b ) -          backup=true;; -        * ) -          ;; -      esac - -    fi - -    skip=${skip:-$skip_all} -    backup=${backup:-$backup_all} - -    if [ "$remove" == "true" ] -    then -      rm -rf "$dst" -      success "removed $dst" -    fi - -    if [ "$backup" == "true" ] -    then -      mv "$dst" "${dst}.backup" -      success "moved $dst to ${dst}.backup" -    fi - -    if [ "$skip" == "true" ] -    then -      success "skipped $src" -    fi -  fi - -  if [ "$skip" != "true" ] -  then -    mkdir -p "$dst" - -    for f in "$src"/* -    do -      this_dst="$dst/$(basename "$f")" -      link "$f" "$this_dst" -    done -  fi -} - - -link_file () { -  local src=$1 dst=$2 - -  local overwrite= backup= skip= -  local action= - -  if [ -f "$dst" -o -d "$dst" -o -L "$dst" ] -  then - -    if [ "$overwrite_all" == "false" ] && [ "$backup_all" == "false" ] && [ "$skip_all" == "false" ] -    then - -      local currentSrc="$(readlink $dst)" - -      if [ "$currentSrc" == "$src" ] -      then - -        skip=true; - -      else - -        user "File already exists: $dst ($(basename "$src")), what do you want to do?\n\ -        [s]kip, [S]kip all, [o]verwrite, [O]verwrite all, [b]ackup, [B]ackup all?" -        read -n 1 action - -        case "$action" in -          o ) -            overwrite=true;; -          O ) -            overwrite_all=true;; -          b ) -            backup=true;; -          B ) -            backup_all=true;; -          s ) -            skip=true;; -          S ) -            skip_all=true;; -          * ) -            ;; -        esac - -      fi - -    fi - -    overwrite=${overwrite:-$overwrite_all} -    backup=${backup:-$backup_all} -    skip=${skip:-$skip_all} - -    if [ "$overwrite" == "true" ] -    then -      rm -rf "$dst" -      success "removed $dst" -    fi - -    if [ "$backup" == "true" ] -    then -      mv "$dst" "${dst}.backup" -      success "moved $dst to ${dst}.backup" -    fi - -    if [ "$skip" == "true" ] -    then -      success "skipped $src" -    fi -  fi - -  if [ "$skip" != "true" ]  # "false" or empty -  then -    ln -s "$1" "$2" -    success "linked $1 to $2" -  fi -} - - -link () { -  local src=$1 dst=$2 - -  if [ -f "$src" ] -  then -    link_file "$src" "$dst" -  elif [ -d "$src" ] -  then -    link_directory "$src" "$dst" -  fi -} - - -install_dotfiles () { -  info 'installing dotfiles' - -  local overwrite_all=false backup_all=false skip_all=false - -  for src in $(find -H "$DOTFILES_ROOT" -maxdepth 2 -name '*.symlink') -  do -    dst="$HOME/.$(basename "${src%.*}")" -    link "$src" "$dst" -  done -} - -setup_gitconfig -install_dotfiles -ln -s "$DOTFILES_ROOT/bin" "$HOME/bin" - -# If we're on a Mac, let's install and setup homebrew. -if [ "$(uname -s)" == "Darwin" ] -then -  info "installing dependencies" -  if source bin/dot > /tmp/dotfiles-dot 2>&1 -  then -    success "dependencies installed" -  else -    fail "error installing dependencies" -  fi -fi - -echo '' -echo '  All installed!' | 
