summaryrefslogtreecommitdiff
path: root/bin/setup.sh
blob: 4921bcf6db114007374d167ea5a414e0ffd8a714 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/bin/bash

red='\e[0;31m'
orange='\e[0;33m'
green='\e[0;32m'
none='\e[0m'

cd
# Check that things are in their right places.
if [[ ! -f dotfiles/bin/setup.sh ]]; then
 echo -e "${red}[FAIL]${none} expected to find myself"
 exit 1
fi

# Creates a symlink with target $1 at location $2.
# Does nothing and prints an error message if $2 exists and is not a symlink.
create_symlink() {
  if [[ -e "$2" && ! -h "$2" ]]; then
    echo -e "${orange}[SKIPPED]${none} '$2' exists and is not a symlink."
    return
  else
    if ln -sf "$1" "$2"; then
      echo -e "${green}[OK]${none} '$2' → '$1'"
    else
      echo -e "${red}[WARNING]${none} could not create '$2'"
    fi
  fi
  if ! diff "$2" "$(dirname $2)/$1"; then
    echo -e "${red}[WARNING]${none} diffs in $2"
  fi
}

create_symlink dotfiles/gitconfig .gitconfig
create_symlink /dev/null .vimrc.local

if [[ "${SHELL}" = *zsh* ]]; then
  create_symlink dotfiles/zshrc .zshrc
else
  echo -e "${orange}[SKIPPED]${none} shell is not zsh :-(."
fi

if which i3 >/dev/null; then
  mkdir -p .i3
  create_symlink ../dotfiles/i3/config .i3/config
else
  echo -e "${orange}[SKIPPED]${none} i3 not installed."
fi

create_symlink dotfiles/vimrc .vimrc
if which git >/dev/null; then
  if [[ -e .vim/bundle/Vundle.vim ]]; then
    echo -e "${orange}[SKIPPED]${none} Vundle.vim already installed"
  else
    success=1
    mkdir -p .vim/bundle
    git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim \
      || success=0
    vim +PluginInstall +qall || success=0
    if [[ "$success" == "1" ]]; then
      echo -e "${green}[OK]${none} installed vim plugins"
    else
      echo -e "${red}[WARNING]${none} failed to install vim plugins"
    fi
  fi
else
  echo -e "${red}[WARNING]${none} git not installed"
fi