diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d8f65dc..04fb87c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,4 +16,4 @@ jobs: steps: - uses: actions/checkout@v2 - uses: cachix/install-nix-action@v9 - - run: ./test.bash + - run: ./test.sh diff --git a/build.nix b/build.nix index 22ea7e8..b38b225 100644 --- a/build.nix +++ b/build.nix @@ -21,6 +21,8 @@ pkgs.stdenv.mkDerivation rec { nativeBuildInputs = [ pkgs.installShellFiles ]; + passthru.binNames = binNames; + installPhase = '' mkdir -p $out/bin diff --git a/shell.nix b/shell.nix index 6d366e7..f8161d4 100644 --- a/shell.nix +++ b/shell.nix @@ -13,5 +13,7 @@ in dhall-bash-simple dhall-nix-simple dhall-yaml-simple + dhall-lsp-simple + dhall-docs-simple ]; } diff --git a/test.bash b/test.bash deleted file mode 100755 index 992af5c..0000000 --- a/test.bash +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -i bash - -ERRORS=0; - -function test_exe () { - EXE=$1; - LOCATION=$(command -v "$EXE"); - if [ -x "$LOCATION" ]; then - echo "found $EXE"; - else - echo "didnt find $EXE"; - ERRORS=1; - fi -} - -test_exe dhall; -test_exe dhall-to-json; -test_exe dhall-to-bash; -test_exe dhall-to-nix; -test_exe dhall-to-yaml-ng; - -exit $ERRORS; diff --git a/test.nix b/test.nix new file mode 100644 index 0000000..b408f6f --- /dev/null +++ b/test.nix @@ -0,0 +1,39 @@ +{ pkgs ? import {} }: + +let + + lib = pkgs.lib; + + executables = lib.concatLists + (lib.mapAttrsToList + # every package puts its binNames into passthru + (_: v: map (bin: "${v}/bin/${bin}") v.passthru.binNames) + (import ./default.nix { inherit pkgs; })); + + testExeLocation = pkgs.writers.writeDash "test-exe-location" '' + set -e + ERRORS=0; + + test_exe () { + EXE=$1; + echo "$EXE --version:" + if $EXE --version; then + return 0 + else + echo "$EXE --version failed!" + ERRORS=1 + fi + } + + for exe in ${lib.escapeShellArgs executables}; do + test_exe "$exe" + done + + exit "$ERRORS" + + ''; + +in { + inherit + testExeLocation; +} diff --git a/test.sh b/test.sh new file mode 100755 index 0000000..6243540 --- /dev/null +++ b/test.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +set -e +test_script="$(nix-build ./test.nix)" +exec "$test_script"