Skip to content

Commit 974e41f

Browse files
p-alikjship
authored andcommitted
installer support --nix parameter to be able running stack in nix-shell (#285)
* installer support --nix parameter to be able running stack in nix-shell * add to readme: Installing in Nix build environment
1 parent e71e0af commit 974e41f

File tree

2 files changed

+23
-3
lines changed

2 files changed

+23
-3
lines changed

README.md

+7
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,13 @@ to install from your clone:
399399
install.sh --repo CLONE-PATH
400400
```
401401

402+
### Installing in Nix build environment
403+
404+
Use `--nix` parameter, in case you want to execute [stack installation in nix-shell](https://docs.haskellstack.org/en/stable/nix_integration/#use-stack-as-normal)
405+
```sh
406+
bash <(curl -sL https://git.io/haskell-vim-now) --nix
407+
```
408+
402409
## Troubleshooting
403410

404411
See this [wiki](https://github.com/begriffs/haskell-vim-now/wiki/Installation-Troubleshooting)

install.sh

+16-3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ DEFAULT_BRANCH="master"
66
DEFAULT_GENERATE_HOOGLE_DB=true
77
DEFAULT_HVN_FULL_INSTALL=true
88
DEFAULT_DRY_RUN=false
9+
DEFAULT_NIX=false
910

1011
if which tput >/dev/null 2>&1; then
1112
ncolors=$(tput colors)
@@ -111,6 +112,7 @@ do_setup() {
111112
local FULL_INSTALL=$2
112113
local GENERATE_HOOGLE_DB=$3
113114
local DRY_RUN=$4
115+
local NIX=$5
114116
local setup_path=${HVN_DEST}/scripts/setup.sh
115117
local setup_haskell_path=${HVN_DEST}/scripts/setup_haskell.hs
116118

@@ -127,6 +129,7 @@ do_setup() {
127129
then
128130
local ARG_NO_HOOGLE_DB="--no-hoogle"
129131
local ARG_NO_HELPER_BINS="--no-helper-bins"
132+
local ARG_NIX=
130133

131134
if [ "$GENERATE_HOOGLE_DB" == true ]
132135
then
@@ -149,7 +152,12 @@ do_setup() {
149152
exit_err "Detected stack version \"${STACK_VER}\", however version 1.4.0 or later is required."
150153
fi
151154

152-
stack $setup_haskell_path $ARG_NO_HOOGLE_DB $ARG_NO_HELPER_BINS ; RETCODE=$?
155+
if [ "$NIX" == true ]
156+
then
157+
ARG_NIX="--nix"
158+
fi
159+
160+
stack $ARG_NIX $setup_haskell_path $ARG_NO_HOOGLE_DB $ARG_NO_HELPER_BINS ; RETCODE=$?
153161
[ ${RETCODE} -ne 0 ] && exit_err "setup_haskell.hs failed with error ${RETCODE}."
154162
fi
155163

@@ -162,11 +170,12 @@ main() {
162170
local FULL_INSTALL=$3
163171
local GENERATE_HOOGLE_DB=$4
164172
local DRY_RUN=$5
173+
local NIX=$6
165174
local HVN_DEST="$(config_home)/haskell-vim-now"
166175
local HVN_DEPENDENCIES_DEST="$(config_home)/haskell-vim-now"
167176

168177
install $REPO_PATH $REPO_BRANCH $HVN_DEST
169-
do_setup $HVN_DEST $FULL_INSTALL $GENERATE_HOOGLE_DB $DRY_RUN
178+
do_setup $HVN_DEST $FULL_INSTALL $GENERATE_HOOGLE_DB $DRY_RUN $NIX
170179
}
171180

172181
function usage() {
@@ -181,6 +190,8 @@ function usage() {
181190
echo " Disable Hoogle database generation. The default is $DEFAULT_GENERATE_HOOGLE_DB."
182191
echo " --dry-run"
183192
echo " Perform a dry run for the stack installs. Primarily intended for testing."
193+
echo " --nix"
194+
echo " Perform stack build in a nix-shell. For more information see https://docs.haskellstack.org/en/stable/nix_integration"
184195
exit 1
185196
}
186197

@@ -190,6 +201,7 @@ HVN_BRANCH=${HVN_BRANCH:=$DEFAULT_BRANCH}
190201
HVN_GENERATE_HOOGLE_DB=${HVN_GENERATE_HOOGLE_DB:=$DEFAULT_GENERATE_HOOGLE_DB}
191202
HVN_FULL_INSTALL=${HVN_FULL_INSTALL:=$DEFAULT_HVN_FULL_INSTALL}
192203
HVN_DRY_RUN=${HVN_DRY_RUN:=$DEFAULT_DRY_RUN}
204+
HVN_NIX=${HVN_NIX:=$DEFAULT_NIX}
193205

194206
while test -n "$1"
195207
do
@@ -199,9 +211,10 @@ do
199211
--branch) shift; HVN_BRANCH=$1; shift; continue;;
200212
--no-hoogle) shift; HVN_GENERATE_HOOGLE_DB=false; continue;;
201213
--dry-run) shift; HVN_DRY_RUN=true; continue;;
214+
--nix) shift; HVN_NIX=true; continue;;
202215
*) usage;;
203216
esac
204217
done
205218

206219
test -n "$HVN_REPO" || usage
207-
main $HVN_REPO $HVN_BRANCH $HVN_FULL_INSTALL $HVN_GENERATE_HOOGLE_DB $HVN_DRY_RUN
220+
main $HVN_REPO $HVN_BRANCH $HVN_FULL_INSTALL $HVN_GENERATE_HOOGLE_DB $HVN_DRY_RUN $HVN_NIX

0 commit comments

Comments
 (0)