base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12
[NixPkgs.git] / pkgs / by-name / di / disko / package.nix
blob8e580594efec870455fb46010057d8fda239ca58
1 { stdenvNoCC
2 , makeWrapper
3 , lib
4 , fetchFromGitHub
5 , bash
6 , nix
7 , nixos-install
8 , coreutils
9 , testers
12 stdenvNoCC.mkDerivation (finalAttrs: {
13   pname = "disko";
14   version = "1.9.0";
15   src = fetchFromGitHub {
16     owner = "nix-community";
17     repo = "disko";
18     rev = "v${finalAttrs.version}";
19     hash = "sha256-CI27qHAbc3/tIe8sb37kiHNaeCqGxNimckCMj0lW5kg=";
20   };
21   nativeBuildInputs = [ makeWrapper ];
22   buildInputs = [ bash ];
23   installPhase = ''
24     runHook preInstall
25     mkdir -p $out/bin $out/share/disko
26     cp -r install-cli.nix cli.nix default.nix disk-deactivate lib $out/share/disko
28     for i in disko disko-install; do
29       sed -e "s|libexec_dir=\".*\"|libexec_dir=\"$out/share/disko\"|" "$i" > "$out/bin/$i"
30       chmod 755 "$out/bin/$i"
31       wrapProgram "$out/bin/$i" \
32         --set DISKO_VERSION "${finalAttrs.version}" \
33         --prefix PATH : ${lib.makeBinPath [ nix coreutils nixos-install ]}
34     done
35     runHook postInstall
36   '';
37   doInstallCheck = true;
38   installCheckPhase = ''
39     runHook preInstallCheck
40     $out/bin/disko --help
41     $out/bin/disko-install --help
42     runHook postInstallCheck
43   '';
45   passthru.tests.version = testers.testVersion { package = finalAttrs.finalPackage; };
47   meta = {
48     homepage = "https://github.com/nix-community/disko";
49     description = "Declarative disk partitioning and formatting using nix";
50     license = lib.licenses.mit;
51     mainProgram = "disko";
52     maintainers = with lib.maintainers; [ mic92 lassulus iFreilicht ];
53     platforms = lib.platforms.linux;
54   };