2
2
3
3
PROGNAME=$( basename $0 )
4
4
DEFAULT_REPO=" https://github.com/begriffs/haskell-vim-now.git"
5
- DEFAULT_GENERATE_HOOGLE_DB=" y"
5
+ DEFAULT_GENERATE_HOOGLE_DB=true
6
+ DEFAULT_HVN_FULL_INSTALL=true
7
+ DEFAULT_DRY_RUN=false
6
8
7
9
if which tput > /dev/null 2>&1 ; then
8
10
ncolors=$( tput colors)
@@ -104,8 +106,9 @@ install() {
104
106
105
107
do_setup () {
106
108
local HVN_DEST=$1
107
- local BASIC_ONLY =$2
109
+ local FULL_INSTALL =$2
108
110
local GENERATE_HOOGLE_DB=$3
111
+ local DRY_RUN=$4
109
112
local setup_path=${HVN_DEST} /scripts/setup.sh
110
113
111
114
. $setup_path || { \
@@ -117,23 +120,24 @@ do_setup() {
117
120
setup_tools
118
121
setup_vim $HVN_DEST
119
122
120
- if test -z " $BASIC_ONLY "
123
+ if [ " $FULL_INSTALL " == true ]
121
124
then
122
- setup_haskell $HVN_DEST $GENERATE_HOOGLE_DB
125
+ setup_haskell $HVN_DEST $GENERATE_HOOGLE_DB $DRY_RUN
123
126
fi
124
127
125
128
setup_done $HVN_DEST
126
129
}
127
130
128
131
main () {
129
132
local REPO_PATH=$1
130
- local BASIC_ONLY =$2
133
+ local FULL_INSTALL =$2
131
134
local GENERATE_HOOGLE_DB=$3
135
+ local DRY_RUN=$4
132
136
local HVN_DEST=" $( config_home) /haskell-vim-now"
133
137
local HVN_DEPENDENCIES_DEST=" $( config_home) /haskell-vim-now"
134
138
135
139
install $REPO_PATH $HVN_DEST
136
- do_setup $HVN_DEST $BASIC_ONLY $GENERATE_HOOGLE_DB
140
+ do_setup $HVN_DEST $FULL_INSTALL $GENERATE_HOOGLE_DB $DRY_RUN
137
141
}
138
142
139
143
function usage() {
@@ -146,36 +150,27 @@ function usage() {
146
150
echo " Git repository to install from. The default is $DEFAULT_REPO ."
147
151
echo " --no-hoogle"
148
152
echo " Disable Hoogle database generation. The default is $DEFAULT_GENERATE_HOOGLE_DB ."
153
+ echo " --dry-run"
154
+ echo " Perform a dry run for the stack installs. Primarily intended for testing."
149
155
exit 1
150
156
}
151
157
152
- # $1: envvar
153
- check_boolean_var () {
154
- local var=$( eval " echo \$ $1 " )
155
- if test -n " $var " -a " $var " ! = y
156
- then
157
- >&2 echo " Error: Boolean envvar [$1 ] can only be empty or 'y'"
158
- exit 1
159
- fi
160
- echo " ENV: [$1 =$var ]"
161
- }
162
-
163
158
# command line args override env vars
164
159
HVN_REPO=${HVN_REPO:= $DEFAULT_REPO }
165
160
HVN_GENERATE_HOOGLE_DB=${HVN_GENERATE_HOOGLE_DB:= $DEFAULT_GENERATE_HOOGLE_DB }
166
-
167
- check_boolean_var HVN_INSTALL_BASIC
168
- check_boolean_var HVN_GENERATE_HOOGLE_DB
161
+ HVN_FULL_INSTALL=${HVN_FULL_INSTALL:= $DEFAULT_HVN_FULL_INSTALL }
162
+ HVN_DRY_RUN=${$HVN_DRY_RUN := $DEFAULT_DRY_RUN }
169
163
170
164
while test -n " $1 "
171
165
do
172
166
case $1 in
173
- --basic) shift ; HVN_INSTALL_BASIC=y ; continue ;;
167
+ --basic) shift ; HVN_FULL_INSTALL=false ; continue ;;
174
168
--repo) shift ; HVN_REPO=$1 ; shift ; continue ;;
175
- --no-hoogle) shift ; HVN_GENERATE_HOOGLE_DB=; continue ;;
169
+ --no-hoogle) shift ; HVN_GENERATE_HOOGLE_DB=false; continue ;;
170
+ --dry-run) shift ; DRY_RUN=true; continue ;;
176
171
* ) usage;;
177
172
esac
178
173
done
179
174
180
175
test -n " $HVN_REPO " || usage
181
- main $HVN_REPO $HVN_INSTALL_BASIC $HVN_GENERATE_HOOGLE_DB
176
+ main $HVN_REPO $HVN_FULL_INSTALL $HVN_GENERATE_HOOGLE_DB $HVN_DRY_RUN
0 commit comments