From 1a18526674b3068b34decb6fd62015b13398dfbb Mon Sep 17 00:00:00 2001 From: Nicolas Mattia Date: Mon, 21 Jan 2019 22:26:16 +0100 Subject: [PATCH] Use num of cores as jobs by default --- bin/Snack.hs | 24 +++++++++++++++++------- tests/any-paths/test | 6 +++--- tests/cpp-2/test | 2 +- tests/cpp/test | 2 +- tests/extended-config/test | 4 ++-- tests/extensions/test | 6 +++--- tests/hpack/test | 2 +- tests/library-2/test | 6 +++--- tests/library-3/test | 2 +- tests/library/test | 4 ++-- tests/magichash/test | 4 ++-- tests/nested/test | 4 ++-- tests/packages/test | 4 ++-- tests/readme/test | 6 +++--- tests/run-args/test | 2 +- tests/single-main/test | 2 +- tests/source-dirs/test | 4 ++-- tests/strips-versions/test | 4 ++-- tests/swp/test | 2 +- tests/template-haskell-2/test | 6 +++--- tests/template-haskell-3/test | 6 +++--- tests/template-haskell-4/test | 6 +++--- tests/template-haskell/test | 6 +++--- tests/trans-imp/test | 4 ++-- 24 files changed, 64 insertions(+), 54 deletions(-) diff --git a/bin/Snack.hs b/bin/Snack.hs index eedaec5..52f89e1 100644 --- a/bin/Snack.hs +++ b/bin/Snack.hs @@ -171,18 +171,28 @@ discoverPackageFile = do -- | How to call @nix-build@ newtype NixConfig = NixConfig - { nixNJobs :: 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 + NixConfig <$> + ( + (NJobs <$> Opts.option Opts.auto (Opts.long "jobs" <> Opts.short 'j' - <> Opts.value 1 <> Opts.metavar "INT" - <> Opts.help "How many jobs to run concurrently") - ) + <> Opts.help "How many jobs to run concurrently (default: number of available cores)") + ) <|> + pure NJobsAuto + ) + --- Snack configuration (unrelated to packages) @@ -391,7 +401,7 @@ nixBuild snackCfg extraNixArgs nixExpr = [ "-" -- read expression from stdin , "--no-out-link" -- no need for roots -- how many jobs to run concurrently (-j) - , "--max-jobs", T.pack (show (nixNJobs nixCfg)) + , "--max-jobs", T.pack (nJobsValue (nixNJobs nixCfg)) ] <> (concatMap toCliArgs nixArgs) funArgs :: [String] funArgs = toFunArg <$> nixArgs diff --git a/tests/any-paths/test b/tests/any-paths/test index 54977ce..fb9ce01 100755 --- a/tests/any-paths/test +++ b/tests/any-paths/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 diff --git a/tests/cpp-2/test b/tests/cpp-2/test index f958d6b..7513694 100755 --- a/tests/cpp-2/test +++ b/tests/cpp-2/test @@ -15,4 +15,4 @@ test() { rm $TMP_FILE } -SNACK="snack -j4" test +SNACK="snack" test diff --git a/tests/cpp/test b/tests/cpp/test index f958d6b..7513694 100755 --- a/tests/cpp/test +++ b/tests/cpp/test @@ -15,4 +15,4 @@ test() { rm $TMP_FILE } -SNACK="snack -j4" test +SNACK="snack" test diff --git a/tests/extended-config/test b/tests/extended-config/test index 78e5ba1..e70e22d 100755 --- a/tests/extended-config/test +++ b/tests/extended-config/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 diff --git a/tests/extensions/test b/tests/extensions/test index 5de06e0..1829392 100755 --- a/tests/extensions/test +++ b/tests/extensions/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 diff --git a/tests/hpack/test b/tests/hpack/test index dfec0cb..23aa498 100755 --- a/tests/hpack/test +++ b/tests/hpack/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 diff --git a/tests/library-2/test b/tests/library-2/test index a7b780c..b5104c9 100755 --- a/tests/library-2/test +++ b/tests/library-2/test @@ -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 diff --git a/tests/library-3/test b/tests/library-3/test index 6299fbc..b5104c9 100755 --- a/tests/library-3/test +++ b/tests/library-3/test @@ -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 diff --git a/tests/library/test b/tests/library/test index beb0d26..140aa53 100755 --- a/tests/library/test +++ b/tests/library/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 diff --git a/tests/magichash/test b/tests/magichash/test index beb0d26..140aa53 100755 --- a/tests/magichash/test +++ b/tests/magichash/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 diff --git a/tests/nested/test b/tests/nested/test index 47de800..430134f 100755 --- a/tests/nested/test +++ b/tests/nested/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 diff --git a/tests/packages/test b/tests/packages/test index 47de800..430134f 100755 --- a/tests/packages/test +++ b/tests/packages/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 diff --git a/tests/readme/test b/tests/readme/test index 54977ce..fb9ce01 100755 --- a/tests/readme/test +++ b/tests/readme/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 diff --git a/tests/run-args/test b/tests/run-args/test index 4f051c9..65f8182 100755 --- a/tests/run-args/test +++ b/tests/run-args/test @@ -8,4 +8,4 @@ test() { $SNACK run -- hello 'this is' 'the answer' bye | diff golden - } -SNACK="snack -j4" test +SNACK="snack" test diff --git a/tests/single-main/test b/tests/single-main/test index 7eb46a1..53406d5 100755 --- a/tests/single-main/test +++ b/tests/single-main/test @@ -8,4 +8,4 @@ test() { $SNACK run } -SNACK="snack -j4" test +SNACK="snack" test diff --git a/tests/source-dirs/test b/tests/source-dirs/test index 5adea03..4463b1e 100755 --- a/tests/source-dirs/test +++ b/tests/source-dirs/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 diff --git a/tests/strips-versions/test b/tests/strips-versions/test index beb0d26..140aa53 100755 --- a/tests/strips-versions/test +++ b/tests/strips-versions/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 diff --git a/tests/swp/test b/tests/swp/test index cfefea5..232f3ab 100755 --- a/tests/swp/test +++ b/tests/swp/test @@ -11,4 +11,4 @@ test() { diff golden.jq $TMP_FILE } -SNACK="snack -j4" test +SNACK="snack" test diff --git a/tests/template-haskell-2/test b/tests/template-haskell-2/test index a12eaea..515b62d 100755 --- a/tests/template-haskell-2/test +++ b/tests/template-haskell-2/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 diff --git a/tests/template-haskell-3/test b/tests/template-haskell-3/test index 50fcce4..5dd0de1 100755 --- a/tests/template-haskell-3/test +++ b/tests/template-haskell-3/test @@ -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 diff --git a/tests/template-haskell-4/test b/tests/template-haskell-4/test index 50fcce4..5dd0de1 100755 --- a/tests/template-haskell-4/test +++ b/tests/template-haskell-4/test @@ -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 diff --git a/tests/template-haskell/test b/tests/template-haskell/test index 50fcce4..5dd0de1 100755 --- a/tests/template-haskell/test +++ b/tests/template-haskell/test @@ -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 diff --git a/tests/trans-imp/test b/tests/trans-imp/test index 0a2b95d..3c7be34 100755 --- a/tests/trans-imp/test +++ b/tests/trans-imp/test @@ -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