-
Notifications
You must be signed in to change notification settings - Fork 1
/
setup
123 lines (102 loc) · 2.03 KB
/
setup
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
112
113
114
115
116
117
118
119
120
121
122
123
#!/bin/bash
set -e
echo ''
IBMI_BASH_TOOLS_ROOT="`pwd`"
BIN_PATH=${1:-"$HOME/bin"}
info () {
printf " [ \033[00;34m..\033[0m ] $1"
}
user () {
printf "\r [ \033[0;33m?\033[0m ] $1 "
}
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
}
link_files () {
ln -s $1 $2
chmod +x $2
success "linked $1 to $2"
}
symlink () {
info "symlinking $1"
overwrite_all=false
backup_all=false
skip_all=false
if [ -f $2 ]
then
overwrite=false
backup=false
skip=false
if [ "$overwrite_all" == "false" ] && [ "$backup_all" == "false" ] && [ "$skip_all" == "false" ]
then
user "Script already exists: `basename $2`, what do you want to do? [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
if [ "$overwrite" == "true" ] || [ "$overwrite_all" == "true" ]
then
rm -rf $2
success "removed $dest"
fi
if [ "$backup" == "true" ] || [ "$backup_all" == "true" ]
then
mv $2 $2\.backup
success "moved $2 to $2.backup"
fi
if [ "$skip" == "false" ] && [ "$skip_all" == "false" ]
then
link_files $1 $2
else
success "skipped $1"
fi
else
link_files $1 $2
fi
}
symlink_scripts() {
for filename in $IBMI_BASH_TOOLS_ROOT/bin/*.sh
do
symlink $filename $BIN_PATH/`basename $filename`
done
}
if [ -d $BIN_PATH ]
then
symlink_scripts
else
user "$BIN_PATH does not exist. Would you like to create it? (y/n)"
read -n 1 action
case "$action" in
y)
mkdir $BIN_PATH
symlink_scripts
;;
n)
echo ''
;;
*)
echo ''
;;
esac
fi
echo ''
echo ' Done!'