shunit2: use resholvePackage
This commit is contained in:
parent
5469552b2f
commit
14d355b7c0
1 changed files with 60 additions and 2 deletions
|
@ -1,6 +1,15 @@
|
|||
{ lib, stdenv, fetchFromGitHub }:
|
||||
{ lib
|
||||
, resholvePackage
|
||||
, fetchFromGitHub
|
||||
, bash
|
||||
, coreutils
|
||||
, gnused
|
||||
, gnugrep
|
||||
, findutils
|
||||
, ncurses
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
resholvePackage {
|
||||
pname = "shunit2";
|
||||
version = "2019-08-10";
|
||||
|
||||
|
@ -22,6 +31,55 @@ stdenv.mkDerivation {
|
|||
$out/bin/shunit2
|
||||
'';
|
||||
|
||||
solutions = {
|
||||
shunit = {
|
||||
# Caution: see __SHUNIT_CMD_ECHO_ESC before changing
|
||||
interpreter = "${bash}/bin/sh";
|
||||
scripts = [ "bin/shunit2" ];
|
||||
inputs = [ coreutils gnused gnugrep findutils ncurses ];
|
||||
# resholve's Nix API is analogous to the CLI flags
|
||||
# documented in 'man resholve'
|
||||
fake = {
|
||||
# "missing" functions shunit2 expects the user to declare
|
||||
function = [
|
||||
"oneTimeSetUp"
|
||||
"oneTimeTearDown"
|
||||
"setUp"
|
||||
"tearDown"
|
||||
"suite"
|
||||
"noexec"
|
||||
];
|
||||
# shunit2 is both bash and zsh compatible, and in
|
||||
# some zsh-specific code it uses this non-bash builtin
|
||||
builtin = [ "setopt" ];
|
||||
};
|
||||
fix = {
|
||||
# stray absolute path; make it resolve from coreutils
|
||||
"/usr/bin/od" = true;
|
||||
/*
|
||||
Caution: this one is contextually debatable. shunit2
|
||||
sets this variable after testing whether `echo -e test`
|
||||
yields `test` or `-e test`. Since we're setting the
|
||||
interpreter, we can pre-test this. But if we go fiddle
|
||||
the interpreter later, I guess we _could_ break it.
|
||||
*/
|
||||
"$__SHUNIT_CMD_ECHO_ESC" = [ "'echo -e'" ];
|
||||
"$SHUNIT_CMD_TPUT" = [ "tput" ]; # from ncurses
|
||||
};
|
||||
keep = {
|
||||
# dynamically defined in shunit2:_shunit_mktempFunc
|
||||
eval = [ "shunit_condition_" "_shunit_test_" "_shunit_prepForSourcing" ];
|
||||
|
||||
# dynamic based on CLI flag
|
||||
"$_SHUNIT_LINENO_" = true;
|
||||
};
|
||||
execer = [
|
||||
# drop after https://github.com/abathur/binlore/issues/2
|
||||
"cannot:${ncurses}/bin/tput"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/kward/shunit2";
|
||||
description = "A xUnit based unit test framework for Bourne based shell scripts";
|
||||
|
|
Loading…
Reference in a new issue