From d875c256bc1e085546c6a530112546b748d03cad Mon Sep 17 00:00:00 2001 From: "Julian K. Arni" <jkarni@gmail.com> Date: Mon, 20 Apr 2015 19:13:06 +0200 Subject: [PATCH] More utility scripts --- scripts/shell.nix | 15 +++++++++++++++ scripts/test-all.sh | 13 ++++++++----- scripts/update-defaults-nix.sh | 24 ++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 scripts/shell.nix create mode 100755 scripts/update-defaults-nix.sh diff --git a/scripts/shell.nix b/scripts/shell.nix new file mode 100644 index 00000000..cbce6750 --- /dev/null +++ b/scripts/shell.nix @@ -0,0 +1,15 @@ +# Get a Nix shell with all the packages installed +# Also a good way of running the tests for all packages +with (import <nixpkgs> {}).pkgs; +let modifiedHaskellPackages = haskellngPackages.override { + overrides = self: super: { + servant = self.callPackage ../servant {}; + servant-server = self.callPackage ../servant-server {}; + servant-client = self.callPackage ../servant-client {}; + servant-jquery = self.callPackage ../servant-jquery {}; + servant-docs = self.callPackage ../servant-docs {}; + }; + }; +in modifiedHaskellPackages.ghcWithPackages ( p : with p ; [ + servant servant-server servant-client servant-jquery servant-docs +]) diff --git a/scripts/test-all.sh b/scripts/test-all.sh index 990d3a1c..5d4f7945 100755 --- a/scripts/test-all.sh +++ b/scripts/test-all.sh @@ -8,21 +8,24 @@ # DESCRIPTION: Run tests for all source directories listed in $SOURCES. # Uses local versions of those sources. # +# REQUIREMENTS: bash >= 4 #=============================================================================== set -o nounset set -o errexit -SOURCES=( servant servant-server servant-client servant-jquery servant-docs ) +DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) GHC_FLAGS="-Werror" +SOURCES_TXT="$( dirname $DIR)/sources.txt" + +declare -a SOURCES +readarray -t SOURCES < "$SOURCES_TXT" + prepare_sandbox () { cabal sandbox init for s in ${SOURCES[@]} ; do - cd "$s" - cabal sandbox init --sandbox=../ - cabal sandbox add-source . - cd .. + (cd "$s" && cabal sandbox init --sandbox=../ && cabal sandbox add-source .) done } diff --git a/scripts/update-defaults-nix.sh b/scripts/update-defaults-nix.sh new file mode 100755 index 00000000..7e85c98a --- /dev/null +++ b/scripts/update-defaults-nix.sh @@ -0,0 +1,24 @@ +#!/bin/bash - +#=============================================================================== +# +# USAGE: ./update-defaults-nix.sh +# +# DESCRIPTION: Updates the default.nix files in all source dirs +# +# REQUIREMENTS: cabal2nix, bash >= 4 +#=============================================================================== + +set -o nounset +set -o errexit + +DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) +BASE_DIR="$( dirname $DIR)" +SOURCES_TXT="$BASE_DIR/sources.txt" + +declare -a SOURCES +readarray -t SOURCES < "$SOURCES_TXT" + +for s in ${SOURCES[@]} ; do + echo $s + (cd "$BASE_DIR/$s" && cabal2nix . > default.nix ) +done