-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinit.sh
executable file
·65 lines (57 loc) · 1.51 KB
/
init.sh
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
#!/bin/bash
# 초기화 선행조건
# Xcode command Line tools
OS=""
BASE_DIR=`pwd`
link_files() {
local LINK_TARGET_FILES=".bash_profile .gitconfig .shells .vim .vimrc .tmux.conf .emacs.d"
# 미리 정의해놓은 설정파일들 링크 처리
for file_item in $LINK_TARGET_FILES
do
[ ! -h $HOME/$file_item ] && ln -sf $BASE_DIR/$file_item $HOME/$file_item
done
}
detect_os() {
case `uname` in
Linux) OS="linux" ;;
Darwin) OS="osx" ;;
*) OS="unknown" ;;
esac
}
package_install_osx() {
brew -v update && brew -v install git tmux tree bash bash-completion clojure the_silver_searcher rbenv fzf
brew install -v emacs --with-cocoa --with-imagemagick@6 --with-librsvg
brew cask install qlmarkdown
## nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
. ~/.nvm/nvm.sh && nvm install --lts && nvm alias default node
}
package_install_linux() {
sudo apt-get install -yy tmux openjdk-11-jdk curl tree rbenv
## nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
}
setup() {
detect_os
if [ -L "$HOME/.gitconfig" ]; then
echo "이미 설정되어있습니다."
exit -1
fi
eval "package_install_$OS" && link_files
case "$OS" in
linux) ;;
osx) source .osx;;
*) ;;
esac
}
dialog() {
local msg
echo "설정하시겠습니까? [y/N]"
read msg
case "$msg" in
[y,Y]) setup ;;
[n,N]) exit -1;;
*) echo "다시 입력해주세요" && dialog;;
esac
}
dialog