mirror of
https://github.com/nmattia/snack.git
synced 2024-10-26 12:38:49 +03:00
commit
88f6a41029
@ -24,6 +24,7 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
|
||||
`./package.nix`.
|
||||
- The flag `-s` is used to specify a `snack.nix`. By default `./snack.nix` is
|
||||
used.
|
||||
- The `--cores` was replaced with `--jobs`
|
||||
|
||||
### Fixed
|
||||
- The module import parsing when the CPP extension is enabled.
|
||||
|
@ -82,7 +82,7 @@ The _snack_ executable is now in your `PATH`:
|
||||
``` shell
|
||||
$ snack --help
|
||||
Usage: <interactive> [-l|--lib DIR] ([-s|--snack-nix PATH] | [--no-snack-nix])
|
||||
[-j|--cores INT] [-p|--package-file PATH] (COMMAND |
|
||||
[-j|--jobs INT] [-p|--package-file PATH] (COMMAND |
|
||||
COMMAND)
|
||||
|
||||
Available options:
|
||||
@ -94,7 +94,7 @@ Available options:
|
||||
(Use --no-snack-nix to disable this behavior)
|
||||
--no-snack-nix Don't use ./snack.nix as the environment (snack.nix)
|
||||
file.
|
||||
-j,--cores INT How many cores to use during the build
|
||||
-j,--jobs INT How many jobs to run concurrently
|
||||
-p,--package-file PATH Specifies a YAML or Nix file to use as package
|
||||
description. If not provided, snack looks for either
|
||||
'package.yaml' or 'package.nix' in the current
|
||||
|
28
bin/Snack.hs
28
bin/Snack.hs
@ -171,18 +171,28 @@ discoverPackageFile = do
|
||||
|
||||
-- | How to call @nix-build@
|
||||
newtype NixConfig = NixConfig
|
||||
{ nixNCores :: Int }
|
||||
{ nixNJobs :: NJobs }
|
||||
|
||||
data NJobs = NJobs Int | NJobsAuto
|
||||
|
||||
nJobsValue :: NJobs -> String
|
||||
nJobsValue = \case
|
||||
NJobs n -> show n
|
||||
NJobsAuto -> "auto"
|
||||
|
||||
parseNixConfig :: Opts.Parser NixConfig
|
||||
parseNixConfig =
|
||||
(NixConfig <$>
|
||||
Opts.option Opts.auto
|
||||
(Opts.long "cores"
|
||||
NixConfig <$>
|
||||
(
|
||||
(NJobs <$> Opts.option Opts.auto
|
||||
(Opts.long "jobs"
|
||||
<> Opts.short 'j'
|
||||
<> Opts.value 1
|
||||
<> Opts.metavar "INT"
|
||||
<> Opts.help "How many cores to use during the build")
|
||||
)
|
||||
<> Opts.help "How many jobs to run concurrently (default: number of available cores)")
|
||||
) <|>
|
||||
pure NJobsAuto
|
||||
)
|
||||
|
||||
|
||||
--- Snack configuration (unrelated to packages)
|
||||
|
||||
@ -390,8 +400,8 @@ nixBuild snackCfg extraNixArgs nixExpr =
|
||||
cliArgs =
|
||||
[ "-" -- read expression from stdin
|
||||
, "--no-out-link" -- no need for roots
|
||||
-- how many cores to use (-j)
|
||||
, "--cores", T.pack (show (nixNCores nixCfg))
|
||||
-- how many jobs to run concurrently (-j)
|
||||
, "--max-jobs", T.pack (nJobsValue (nixNJobs nixCfg))
|
||||
] <> (concatMap toCliArgs nixArgs)
|
||||
funArgs :: [String]
|
||||
funArgs = toFunArg <$> nixArgs
|
||||
|
@ -8,6 +8,6 @@ test() {
|
||||
$SNACK run
|
||||
}
|
||||
|
||||
SNACK="snack -j4 --package-file ./package.nix" test
|
||||
SNACK="snack -j4 --package-file ./package.nix -l ../../snack-lib" test
|
||||
SNACK="snack -j4 --package-file ./package.yaml" test
|
||||
SNACK="snack --package-file ./package.nix" test
|
||||
SNACK="snack --package-file ./package.nix -l ../../snack-lib" test
|
||||
SNACK="snack --package-file ./package.yaml" test
|
||||
|
@ -15,4 +15,4 @@ test() {
|
||||
rm $TMP_FILE
|
||||
}
|
||||
|
||||
SNACK="snack -j4" test
|
||||
SNACK="snack" test
|
||||
|
@ -15,4 +15,4 @@ test() {
|
||||
rm $TMP_FILE
|
||||
}
|
||||
|
||||
SNACK="snack -j4" test
|
||||
SNACK="snack" test
|
||||
|
@ -16,5 +16,5 @@ test() {
|
||||
rm $TMP_FILE
|
||||
}
|
||||
|
||||
SNACK="snack -j4 --snack-nix snack.nix --package-file package.yaml" test
|
||||
SNACK="snack -j4" test
|
||||
SNACK="snack --snack-nix snack.nix --package-file package.yaml" test
|
||||
SNACK="snack" test
|
||||
|
@ -15,6 +15,6 @@ test() {
|
||||
rm $TMP_FILE
|
||||
}
|
||||
|
||||
SNACK="snack -j4 --package-file ./package.nix" test
|
||||
SNACK="snack -j4 --package-file ./package.nix -l ../../snack-lib" test
|
||||
SNACK="snack -j4 --package-file ./package.yaml" test
|
||||
SNACK="snack --package-file ./package.nix" test
|
||||
SNACK="snack --package-file ./package.nix -l ../../snack-lib" test
|
||||
SNACK="snack --package-file ./package.yaml" test
|
||||
|
@ -9,7 +9,7 @@ git clone http://github.com/nmattia/pboy.git $TMP_DIR
|
||||
git -C $TMP_DIR reset --hard a2458d6984930a33a3b1972cb6d5c167d2511b06
|
||||
|
||||
pushd $TMP_DIR
|
||||
snack -j4 build
|
||||
snack build
|
||||
popd
|
||||
|
||||
rm -rf $TMP_DIR
|
||||
|
@ -15,7 +15,7 @@ test() {
|
||||
rm $TMP_FILE
|
||||
}
|
||||
|
||||
SNACK="snack -j4" test
|
||||
SNACK="snack -j4 --package-file ./package.nix" test
|
||||
SNACK="snack -j4 --package-file ./package.nix -l ../../snack-lib" test
|
||||
SNACK="snack" test
|
||||
SNACK="snack --package-file ./package.nix" test
|
||||
SNACK="snack --package-file ./package.nix -l ../../snack-lib" test
|
||||
# Note: no HPack test, because HPack doesn't support multi library
|
||||
|
@ -17,5 +17,5 @@ test() {
|
||||
|
||||
SNACK="snack" test
|
||||
SNACK="snack --package-file ./package.nix" test
|
||||
SNACK="snack -j4 --package-file ./package.nix -l ../../snack-lib" test
|
||||
SNACK="snack --package-file ./package.nix -l ../../snack-lib" test
|
||||
# Note: no HPack test, because HPack doesn't support multi library
|
||||
|
@ -15,5 +15,5 @@ test() {
|
||||
rm $TMP_FILE
|
||||
}
|
||||
|
||||
SNACK="snack -j4 --package-file ./package.nix" test
|
||||
SNACK="snack -j4 --package-file ./package.yaml" test
|
||||
SNACK="snack --package-file ./package.nix" test
|
||||
SNACK="snack --package-file ./package.yaml" test
|
||||
|
@ -15,5 +15,5 @@ test() {
|
||||
rm $TMP_FILE
|
||||
}
|
||||
|
||||
SNACK="snack -j4 --package-file ./package.nix" test
|
||||
SNACK="snack -j4 --package-file ./package.yaml" test
|
||||
SNACK="snack --package-file ./package.nix" test
|
||||
SNACK="snack --package-file ./package.yaml" test
|
||||
|
@ -16,5 +16,5 @@ test() {
|
||||
rm $TMP_FILE
|
||||
}
|
||||
|
||||
SNACK="snack -j4 --package-file ./package.nix" test
|
||||
SNACK="snack -j4 --package-file ./package.yaml" test
|
||||
SNACK="snack --package-file ./package.nix" test
|
||||
SNACK="snack --package-file ./package.yaml" test
|
||||
|
@ -16,5 +16,5 @@ test() {
|
||||
rm $TMP_FILE
|
||||
}
|
||||
|
||||
SNACK="snack -j4 --package-file ./package.nix" test
|
||||
SNACK="snack -j4 --package-file ./package.yaml" test
|
||||
SNACK="snack --package-file ./package.nix" test
|
||||
SNACK="snack --package-file ./package.yaml" test
|
||||
|
@ -8,6 +8,6 @@ test() {
|
||||
$SNACK run
|
||||
}
|
||||
|
||||
SNACK="snack -j4 --package-file ./package.nix" test
|
||||
SNACK="snack -j4 --package-file ./package.nix -l ../../snack-lib" test
|
||||
SNACK="snack -j4 --package-file ./package.yaml" test
|
||||
SNACK="snack --package-file ./package.nix" test
|
||||
SNACK="snack --package-file ./package.nix -l ../../snack-lib" test
|
||||
SNACK="snack --package-file ./package.yaml" test
|
||||
|
@ -8,4 +8,4 @@ test() {
|
||||
$SNACK run -- hello 'this is' 'the answer' bye | diff golden -
|
||||
}
|
||||
|
||||
SNACK="snack -j4" test
|
||||
SNACK="snack" test
|
||||
|
@ -8,4 +8,4 @@ test() {
|
||||
$SNACK run
|
||||
}
|
||||
|
||||
SNACK="snack -j4" test
|
||||
SNACK="snack" test
|
||||
|
@ -16,5 +16,5 @@ test() {
|
||||
}
|
||||
|
||||
|
||||
SNACK="snack -j4 -p ./package.nix" test
|
||||
SNACK="snack -j4 -p ./package.yaml" test
|
||||
SNACK="snack -p ./package.nix" test
|
||||
SNACK="snack -p ./package.yaml" test
|
||||
|
@ -15,5 +15,5 @@ test() {
|
||||
rm $TMP_FILE
|
||||
}
|
||||
|
||||
SNACK="snack -j4 --package-file ./package.nix" test
|
||||
SNACK="snack -j4 --package-file ./package.yaml" test
|
||||
SNACK="snack --package-file ./package.nix" test
|
||||
SNACK="snack --package-file ./package.yaml" test
|
||||
|
@ -11,4 +11,4 @@ test() {
|
||||
diff golden.jq $TMP_FILE
|
||||
}
|
||||
|
||||
SNACK="snack -j4" test
|
||||
SNACK="snack" test
|
||||
|
@ -3,12 +3,12 @@
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
snack -j4 build --package-file code/package.nix
|
||||
snack -j4 run --package-file code/package.nix | diff golden -
|
||||
snack build --package-file code/package.nix
|
||||
snack run --package-file code/package.nix | diff golden -
|
||||
|
||||
TMP_FILE=$(mktemp)
|
||||
|
||||
capture_io "$TMP_FILE" main | snack -j4 --package-file code/package.nix ghci
|
||||
capture_io "$TMP_FILE" main | snack --package-file code/package.nix ghci
|
||||
|
||||
diff golden $TMP_FILE
|
||||
rm $TMP_FILE
|
||||
|
@ -3,12 +3,12 @@
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
snack -j4 build
|
||||
snack -j4 run | diff golden -
|
||||
snack build
|
||||
snack run | diff golden -
|
||||
|
||||
TMP_FILE=$(mktemp)
|
||||
|
||||
capture_io "$TMP_FILE" main | snack -j4 ghci
|
||||
capture_io "$TMP_FILE" main | snack ghci
|
||||
|
||||
diff golden $TMP_FILE
|
||||
rm $TMP_FILE
|
||||
|
@ -3,12 +3,12 @@
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
snack -j4 build
|
||||
snack -j4 run | diff golden -
|
||||
snack build
|
||||
snack run | diff golden -
|
||||
|
||||
TMP_FILE=$(mktemp)
|
||||
|
||||
capture_io "$TMP_FILE" main | snack -j4 ghci
|
||||
capture_io "$TMP_FILE" main | snack ghci
|
||||
|
||||
diff golden $TMP_FILE
|
||||
rm $TMP_FILE
|
||||
|
@ -3,12 +3,12 @@
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
snack -j4 build
|
||||
snack -j4 run | diff golden -
|
||||
snack build
|
||||
snack run | diff golden -
|
||||
|
||||
TMP_FILE=$(mktemp)
|
||||
|
||||
capture_io "$TMP_FILE" main | snack -j4 ghci
|
||||
capture_io "$TMP_FILE" main | snack ghci
|
||||
|
||||
diff golden $TMP_FILE
|
||||
rm $TMP_FILE
|
||||
|
@ -15,6 +15,6 @@ test() {
|
||||
rm $TMP_FILE
|
||||
}
|
||||
|
||||
SNACK="snack -j4" test
|
||||
SNACK="snack -j4 --package-file ./package.nix" test
|
||||
SNACK="snack" test
|
||||
SNACK="snack --package-file ./package.nix" test
|
||||
# Note: no HPack test, because HPack doesn't support multi library
|
||||
|
Loading…
Reference in New Issue
Block a user