From c998ef53b8c90dfe8ab17016922d1c2b70b2663e Mon Sep 17 00:00:00 2001 From: Malte Brandy Date: Wed, 16 Mar 2022 14:40:56 +0100 Subject: [PATCH] nix-output-monitor: 1.1.2.0 -> 1.1.2.1 + Refactor --- .../haskell-modules/non-hackage-packages.nix | 2 - pkgs/tools/nix/nix-output-monitor/default.nix | 179 ++---------------- .../nix-output-monitor/generated-package.nix | 147 ++++++++++++++ pkgs/tools/nix/nix-output-monitor/update.sh | 25 +-- pkgs/top-level/all-packages.nix | 2 +- 5 files changed, 169 insertions(+), 186 deletions(-) create mode 100644 pkgs/tools/nix/nix-output-monitor/generated-package.nix diff --git a/pkgs/development/haskell-modules/non-hackage-packages.nix b/pkgs/development/haskell-modules/non-hackage-packages.nix index 4aead5d18800..e06f9d30d2da 100644 --- a/pkgs/development/haskell-modules/non-hackage-packages.nix +++ b/pkgs/development/haskell-modules/non-hackage-packages.nix @@ -24,8 +24,6 @@ self: super: { nix-linter = self.callPackage ../../development/tools/analysis/nix-linter { }; - nix-output-monitor = self.callPackage ../../tools/nix/nix-output-monitor { }; - # hasura graphql-engine is not released to hackage. # https://github.com/hasura/graphql-engine/issues/7391 ci-info = self.callPackage ../misc/haskell/hasura/ci-info.nix {}; diff --git a/pkgs/tools/nix/nix-output-monitor/default.nix b/pkgs/tools/nix/nix-output-monitor/default.nix index 0f78600a0506..a79b41a4a5dd 100644 --- a/pkgs/tools/nix/nix-output-monitor/default.nix +++ b/pkgs/tools/nix/nix-output-monitor/default.nix @@ -1,164 +1,23 @@ -# This file has been autogenerate with cabal2nix. -# Update via ./update.sh" { - mkDerivation, - ansi-terminal, - async, - attoparsec, - base, - bytestring, - cassava, - containers, - data-default, - directory, + haskell, expect, - extra, - fetchzip, - filepath, - generic-optics, - HUnit, + haskellPackages, installShellFiles, - lib, - lock-file, - MemoTrie, - mtl, - nix-derivation, - optics, - process, - random, - relude, - runtimeShell, - safe, - stm, - streamly, - terminal-size, - text, - time, - unix, - vector, - wcwidth, - word8, -}: -mkDerivation { - pname = "nix-output-monitor"; - version = "1.1.2.0"; - src = fetchzip { - url = "https://github.com/maralorn/nix-output-monitor/archive/refs/tags/v1.1.2.0.tar.gz"; - sha256 = "03qhy4xzika41pxlmvpz3psgy54va72ipn9v1lv33l6369ikrhl1"; +}: let + inherit (haskell.lib.compose) justStaticExecutables overrideCabal; + overrides = { + passthru.updateScript = ./update.sh; + testTarget = "unit-tests"; + buildTools = [installShellFiles]; + postInstall = '' + substitute "exe-sh/nom-build" "$out/bin/nom-build" \ + --replace 'unbuffer' '${expect}/bin/unbuffer' \ + --replace 'nom' "$out/bin/nom" + chmod a+x $out/bin/nom-build + installShellCompletion --zsh --name _nom-build completions/completion.zsh + ''; }; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - ansi-terminal - async - attoparsec - base - bytestring - cassava - containers - data-default - directory - extra - filepath - generic-optics - lock-file - MemoTrie - mtl - nix-derivation - optics - random - relude - safe - stm - streamly - terminal-size - text - time - unix - vector - wcwidth - word8 - ]; - executableHaskellDepends = [ - ansi-terminal - async - attoparsec - base - bytestring - cassava - containers - data-default - directory - extra - filepath - generic-optics - lock-file - MemoTrie - mtl - nix-derivation - optics - random - relude - safe - stm - streamly - terminal-size - text - time - unix - vector - wcwidth - word8 - ]; - testHaskellDepends = [ - ansi-terminal - async - attoparsec - base - bytestring - cassava - containers - data-default - directory - extra - filepath - generic-optics - HUnit - lock-file - MemoTrie - mtl - nix-derivation - optics - process - random - relude - safe - stm - streamly - terminal-size - text - time - unix - vector - wcwidth - word8 - ]; - homepage = "https://github.com/maralorn/nix-output-monitor"; - description = "Parses output of nix-build to show additional information"; - license = lib.licenses.agpl3Plus; - maintainers = with lib.maintainers; [maralorn]; - passthru.updateScript = ./update.sh; - testTarget = "unit-tests"; - buildTools = [installShellFiles]; - postInstall = '' - cat > $out/bin/nom-build << EOF - #!${runtimeShell} - ${expect}/bin/unbuffer nix-build "\$@" 2>&1 | exec $out/bin/nom - EOF - chmod a+x $out/bin/nom-build - installShellCompletion --zsh --name _nom-build ${builtins.toFile "completion.zsh" '' - #compdef nom-build - compdef nom-build=nix-build - ''} - ''; -} +in + justStaticExecutables + (overrideCabal overrides + (haskellPackages.callPackage ./generated-package.nix {})) diff --git a/pkgs/tools/nix/nix-output-monitor/generated-package.nix b/pkgs/tools/nix/nix-output-monitor/generated-package.nix new file mode 100644 index 000000000000..9f4d4b5042b7 --- /dev/null +++ b/pkgs/tools/nix/nix-output-monitor/generated-package.nix @@ -0,0 +1,147 @@ +# This file has been autogenerate with cabal2nix. +# Update via ./update.sh" +{ + mkDerivation, + ansi-terminal, + async, + attoparsec, + base, + bytestring, + cassava, + containers, + data-default, + directory, + extra, + fetchzip, + filepath, + generic-optics, + HUnit, + lib, + lock-file, + MemoTrie, + mtl, + nix-derivation, + optics, + process, + random, + relude, + safe, + stm, + streamly, + terminal-size, + text, + time, + unix, + vector, + wcwidth, + word8, +}: +mkDerivation { + pname = "nix-output-monitor"; + version = "1.1.2.1"; + src = fetchzip { + url = "https://github.com/maralorn/nix-output-monitor/archive/refs/tags/v1.1.2.1.tar.gz"; + sha256 = "00jn963jskyqnwvbvn5x0z92x2gv105p5h8m13nlmr90lj4axynx"; + }; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + ansi-terminal + async + attoparsec + base + bytestring + cassava + containers + data-default + directory + extra + filepath + generic-optics + lock-file + MemoTrie + mtl + nix-derivation + optics + random + relude + safe + stm + streamly + terminal-size + text + time + unix + vector + wcwidth + word8 + ]; + executableHaskellDepends = [ + ansi-terminal + async + attoparsec + base + bytestring + cassava + containers + data-default + directory + extra + filepath + generic-optics + lock-file + MemoTrie + mtl + nix-derivation + optics + random + relude + safe + stm + streamly + terminal-size + text + time + unix + vector + wcwidth + word8 + ]; + testHaskellDepends = [ + ansi-terminal + async + attoparsec + base + bytestring + cassava + containers + data-default + directory + extra + filepath + generic-optics + HUnit + lock-file + MemoTrie + mtl + nix-derivation + optics + process + random + relude + safe + stm + streamly + terminal-size + text + time + unix + vector + wcwidth + word8 + ]; + homepage = "https://github.com/maralorn/nix-output-monitor"; + description = "Parses output of nix-build to show additional information"; + license = lib.licenses.agpl3Plus; + maintainers = with lib.maintainers; [maralorn]; +} diff --git a/pkgs/tools/nix/nix-output-monitor/update.sh b/pkgs/tools/nix/nix-output-monitor/update.sh index ad5da0000300..b25a65fca2d7 100755 --- a/pkgs/tools/nix/nix-output-monitor/update.sh +++ b/pkgs/tools/nix/nix-output-monitor/update.sh @@ -9,7 +9,7 @@ set -eo pipefail # This is the directory of this update.sh script. script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" -derivation_file="${script_dir}/default.nix" +derivation_file="${script_dir}/generated-package.nix" # This is the latest released version of nix-output-monitor on GitHub. new_version=$(curl --silent "https://api.github.com/repos/maralorn/nix-output-monitor/releases" | jq '.[0].tag_name' --raw-output) @@ -23,30 +23,9 @@ cat > "$derivation_file" << EOF EOF cabal2nix \ - --extra-arguments expect \ - --extra-arguments runtimeShell\ - --extra-arguments installShellFiles\ --maintainer maralorn \ "https://github.com/maralorn/nix-output-monitor/archive/refs/tags/${new_version}.tar.gz" \ - | head -n-1 >> "$derivation_file" - -cat >> "$derivation_file" << EOF - passthru.updateScript = ./update.sh; - testTarget = "unit-tests"; - buildTools = [ installShellFiles ]; - postInstall = '' - cat > \$out/bin/nom-build << EOF - #!\${runtimeShell} - \${expect}/bin/unbuffer nix-build "\\\$@" 2>&1 | exec \$out/bin/nom - EOF - chmod a+x \$out/bin/nom-build - installShellCompletion --zsh --name _nom-build \${builtins.toFile "completion.zsh" '' - #compdef nom-build - compdef nom-build=nix-build - ''} - ''; -} -EOF + >> "$derivation_file" alejandra "${derivation_file}" | cat diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 38fa936a3b11..fa77dfa8a148 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3595,7 +3595,7 @@ with pkgs; nix-direnv = callPackage ../tools/misc/nix-direnv { }; - nix-output-monitor = haskell.lib.compose.justStaticExecutables (haskellPackages.nix-output-monitor); + nix-output-monitor = callPackage ../tools/nix/nix-output-monitor { }; nix-template = callPackage ../tools/package-management/nix-template { inherit (darwin.apple_sdk.frameworks) Security;