aboutsummaryrefslogtreecommitdiff
path: root/install.sh
blob: 8968d308a087bc91359a237ef29cd24886673f88 (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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#!/bin/sh

set -e

SCRIPT_DIR=$(cd -P -- "$(dirname -- "$0")" && pwd -P)

CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}"
mkdir -p "$CONFIG"

link() {
  src="$1"
  dst="$2"

  if [ -e "$dst" ] || [ -L "$dst" ]; then
    rm -rf -- "$dst"
  fi

  ln -sf -- "$src" "$dst"
}

copy_if_missing() {
  src="$1"
  dst="$2"

  if [ ! -e "$dst" ] && [ ! -L "$dst" ]; then
    cp -a -- "$src" "$dst"
  fi
}

link_abook() {
  mkdir -p "$HOME/.abook"
  link "$SCRIPT_DIR/abook/abookrc" "$HOME/.abook/abookrc"
}

link_gdb() {
  link "$SCRIPT_DIR/gdb" "$CONFIG/gdb"
}

link_gitconfig() {
  link "$SCRIPT_DIR/git" "$CONFIG/git"
}

link_mpd() {
  link "$SCRIPT_DIR/mpd" "$CONFIG/mpd"
}

link_ncmpcpp() {
  link "$SCRIPT_DIR/ncmpcpp" "$CONFIG/ncmpcpp"
}

link_neovim() {
  link "$SCRIPT_DIR/nvim" "$CONFIG/nvim"
}

link_newsboat() {
  mkdir -p "$CONFIG/newsboat"
  link "$SCRIPT_DIR/newsboat/config" "$CONFIG/newsboat/config"
}

copy_npmrc() {
  copy_if_missing "$SCRIPT_DIR/npm/npmrc" "$HOME/.npmrc"
}

link_nexrc() {
  link "$SCRIPT_DIR/nexrc/nexrc" "$HOME/.nexrc"
}

link_taskwarrior() {
  link "$SCRIPT_DIR/taskwarrior" "$CONFIG/task"
}

link_tmux() {
  link "$SCRIPT_DIR/tmux" "$CONFIG/tmux"
}

link_vit() {
  link "$SCRIPT_DIR/vit" "$CONFIG/vit"
}

link_wyrdrc() {
  link "$SCRIPT_DIR/wyrd/wyrdrc" "$HOME/.wyrdrc"
}

link_xinitrc() {
  link "$SCRIPT_DIR/X11/xinitrc" "$HOME/.xinitrc"
}

link_zsh() {
  link "$SCRIPT_DIR/zsh/zshenv.home" "$HOME/.zshenv"

  mkdir -p "$CONFIG/zsh"
  link "$SCRIPT_DIR/zsh/zshrc" "$CONFIG/zsh/.zshrc"
  link "$SCRIPT_DIR/zsh/zshenv" "$CONFIG/zsh/.zshenv"
  link "$SCRIPT_DIR/zsh/zprofile" "$CONFIG/zsh/.zprofile"
}

link_abook
link_gdb
link_gitconfig
link_mpd
link_ncmpcpp
link_neovim
link_newsboat
copy_npmrc
link_nexrc
link_taskwarrior
link_tmux
link_vit
link_wyrdrc
link_xinitrc
link_zsh