diff --git a/pkgs/development/libraries/optparse-bash/default.nix b/pkgs/development/libraries/optparse-bash/default.nix new file mode 100644 index 000000000000..811458ed187c --- /dev/null +++ b/pkgs/development/libraries/optparse-bash/default.nix @@ -0,0 +1,63 @@ +{ stdenvNoCC +, lib +, fetchFromGitHub +, bash +, gnused +, gawk +, coreutils +}: + +stdenvNoCC.mkDerivation { + pname = "optparse-bash-unstable"; + version = "2021-06-13"; + + src = fetchFromGitHub { + owner = "nk412"; + repo = "optparse"; + rev = "d86ec17d15368e5b54eb2d47b001b0b61d68bbd0"; + sha256 = "sha256-vs7Jo1+sV0tPse4Wu2xtzSX1IkahwLgO3e4Riz3uMmI="; + }; + + postPatch = '' + substituteInPlace optparse.bash \ + --replace sed "${gnused}/bin/sed" \ + --replace awk "${gawk}/bin/awk" \ + --replace printf "${coreutils}/bin/printf" +''; + + dontBuild = true; + + doCheck = true; + + checkInputs = [ bash ]; + + # `#!/usr/bin/env` isn't okay for OfBorg + # Need external bash to run + checkPhase = '' + runHook preCheck + bash ./sample_head.sh -v --file README.md + runHook postCheck + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin + mv optparse.bash $out/bin/ + mkdir -p $out/share/doc/optparse-bash + mv README.md sample_head.sh $out/share/doc/optparse-bash/ + runHook postInstall + ''; + + # As example code, + # sample_head.sh shows how users can use opt-parse in their script, + # and its shebang (`/usr/bin/env bash`) should not be patched. + dontPatchShebangs = true; + + meta = with lib; { + description = "A BASH wrapper for getopts, for simple command-line argument parsing"; + homepage = "https://github.com/nk412/optparse"; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ ShamrockLee ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0ba728f6a8d0..008e74b0c3ca 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18055,6 +18055,8 @@ with pkgs; openrct2 = callPackage ../games/openrct2 { }; + optparse-bash = callPackage ../development/libraries/optparse-bash { }; + orcania = callPackage ../development/libraries/orcania { }; osm-gps-map = callPackage ../development/libraries/osm-gps-map { };