diff options
Diffstat (limited to 'nixpkgs/pkgs/by-name/ju')
-rw-r--r-- | nixpkgs/pkgs/by-name/ju/just/package.nix | 86 | ||||
-rw-r--r-- | nixpkgs/pkgs/by-name/ju/just/setup-hook.sh | 58 | ||||
-rw-r--r-- | nixpkgs/pkgs/by-name/ju/justbuild/package.nix | 2 |
3 files changed, 145 insertions, 1 deletions
diff --git a/nixpkgs/pkgs/by-name/ju/just/package.nix b/nixpkgs/pkgs/by-name/ju/just/package.nix new file mode 100644 index 000000000000..c613853ef3d9 --- /dev/null +++ b/nixpkgs/pkgs/by-name/ju/just/package.nix @@ -0,0 +1,86 @@ +{ lib +, stdenv +, fetchFromGitHub +, rustPlatform +, coreutils +, installShellFiles +, libiconv +, mdbook +, nix-update-script +}: + +rustPlatform.buildRustPackage rec { + pname = "just"; + version = "1.25.2"; + outputs = [ "out" "man" "doc" ]; + + src = fetchFromGitHub { + owner = "casey"; + repo = pname; + rev = "refs/tags/${version}"; + hash = "sha256-w7tHLjIFnlvyuTw5yG6zxJtQ7oDNdKRXHIRKY638vTo="; + }; + + cargoHash = "sha256-VL2uNbEtqOv3xmLukhdCmo3lrfx5yFwOAMGwgBlgAVw="; + + nativeBuildInputs = [ installShellFiles mdbook ]; + buildInputs = lib.optionals stdenv.isDarwin [ libiconv ]; + + preCheck = '' + # USER must not be empty + export USER=just-user + export USERNAME=just-user + export JUST_CHOOSER="${coreutils}/bin/cat" + + # Prevent string.rs from being changed + cp tests/string.rs $TMPDIR/string.rs + + sed -i src/justfile.rs \ + -i tests/*.rs \ + -e "s@/bin/echo@${coreutils}/bin/echo@g" \ + -e "s@/usr/bin/env@${coreutils}/bin/env@g" + + # Return unchanged string.rs + cp $TMPDIR/string.rs tests/string.rs + ''; + + postBuild = '' + cargo run --package generate-book + + # No linkcheck in sandbox + echo 'optional = true' >> book/en/book.toml + mdbook build book/en + find . + ''; + + checkFlags = [ + "--skip=edit" # trying to run "vim" fails as there's no /usr/bin/env or which in the sandbox to find vim and the dependency is not easily patched + "--skip=run_shebang" # test case very rarely fails with "Text file busy" + "--skip=invoke_error_function" # wants JUST_CHOOSER to be fzf + "--skip=choose::default" # symlinks cat->fzf which fails as coreutils doesn't understand name + ]; + + postInstall = '' + mkdir -p $doc/share/doc/$name + mv ./book/en/build/html $doc/share/doc/$name + installManPage man/just.1 + + installShellCompletion --cmd just \ + --bash completions/just.bash \ + --fish completions/just.fish \ + --zsh completions/just.zsh + ''; + + setupHook = ./setup-hook.sh; + + passthru.updateScript = nix-update-script { }; + + meta = with lib; { + homepage = "https://github.com/casey/just"; + changelog = "https://github.com/casey/just/blob/${version}/CHANGELOG.md"; + description = "A handy way to save and run project-specific commands"; + license = licenses.cc0; + maintainers = with maintainers; [ xrelkd jk adamcstephens ]; + mainProgram = "just"; + }; +} diff --git a/nixpkgs/pkgs/by-name/ju/just/setup-hook.sh b/nixpkgs/pkgs/by-name/ju/just/setup-hook.sh new file mode 100644 index 000000000000..0ffcfc187ebf --- /dev/null +++ b/nixpkgs/pkgs/by-name/ju/just/setup-hook.sh @@ -0,0 +1,58 @@ +justBuildPhase() { + runHook preBuild + + local flagsArray=($justFlags "${justFlagsArray[@]}") + + echoCmd 'build flags' "${flagsArray[@]}" + just "${flagsArray[@]}" + + runHook postBuild +} + +justCheckPhase() { + runHook preCheck + + if [ -z "${checkTarget:-}" ]; then + if just -n test >/dev/null 2>&1; then + checkTarget=test + fi + fi + + if [ -z "${checkTarget:-}" ]; then + echo "no test target found in just, doing nothing" + else + local flagsArray=( + $justFlags "${justFlagsArray[@]}" + $checkTarget + ) + + echoCmd 'check flags' "${flagsArray[@]}" + just "${flagsArray[@]}" + fi + + runHook postCheck +} + +justInstallPhase() { + runHook preInstall + + # shellcheck disable=SC2086 + local flagsArray=($justFlags "${justFlagsArray[@]}" ${installTargets:-install}) + + echoCmd 'install flags' "${flagsArray[@]}" + just "${flagsArray[@]}" + + runHook postInstall +} + +if [ -z "${dontUseJustBuild-}" -a -z "${buildPhase-}" ]; then + buildPhase=justBuildPhase +fi + +if [ -z "${dontUseJustCheck-}" -a -z "${checkPhase-}" ]; then + checkPhase=justCheckPhase +fi + +if [ -z "${dontUseJustInstall-}" -a -z "${installPhase-}" ]; then + installPhase=justInstallPhase +fi diff --git a/nixpkgs/pkgs/by-name/ju/justbuild/package.nix b/nixpkgs/pkgs/by-name/ju/justbuild/package.nix index 0f2098aa148d..42510b0ade0b 100644 --- a/nixpkgs/pkgs/by-name/ju/justbuild/package.nix +++ b/nixpkgs/pkgs/by-name/ju/justbuild/package.nix @@ -170,7 +170,7 @@ stdenv.mkDerivation rec { ''; meta = with lib; { - broken = stdenv.isDarwin; + broken = true; # last successful build 2024-01-26 description = "a generic build tool"; homepage = "https://github.com/just-buildsystem/justbuild"; license = licenses.asl20; |