Introduce mkInstallable

This commit is contained in:
Surma
2024-09-07 00:21:50 +01:00
parent fae5959392
commit 00082becab
5 changed files with 24 additions and 31 deletions

View File

@@ -15,13 +15,14 @@
system:
let
pkgs = nixpkgs.legacyPackages.${system};
inherit (pkgs) callPackage writeShellScriptBin;
inherit (pkgs) callPackage;
buildSquooshRustCodec= callPackage (import ../../nix/squoosh-rust-builder) {fenix = fenix.packages.${system};};
mkInstallable = callPackage (import ../../nix/mk-installable) {};
src = ./.;
in
{
mkInstallable {
packages = rec {
default = resize-squoosh;
resize-squoosh = buildSquooshRustCodec {
@@ -34,17 +35,6 @@
sha256 = "sha256-HTElSB76gqCpDu8S0ZJlfd/S4ftMrbwxFgJM9OXBRz8=";
};
};
installScript = writeShellScriptBin "install.sh" ''
${pkgs.coreutils}/bin/mkdir -p wasm_build
${pkgs.rsync}/bin/rsync --chmod=u+w -r ${self.packages.${system}.resize-squoosh}/* wasm_build/
'';
};
apps = {
install = {
type = "app";
program = "${self.packages.${system}.installScript}/bin/install.sh";
};
};
}
);

View File

@@ -19,10 +19,11 @@
inherit (pkgs) callPackage writeShellScriptBin;
buildSquooshRustCodec= callPackage (import ../../nix/squoosh-rust-builder) {fenix = fenix.packages.${system};};
mkInstallable = callPackage (import ../../nix/mk-installable) {};
src = ./.;
in
{
mkInstallable {
packages = rec {
default = rotate-squoosh;
rotate-squoosh = buildSquooshRustCodec {
@@ -33,17 +34,6 @@
};
wasmBindgen = null;
};
installScript = writeShellScriptBin "install.sh" ''
${pkgs.coreutils}/bin/mkdir -p wasm_build
${pkgs.rsync}/bin/rsync --chmod=u+w -r ${self.packages.${system}.rotate-squoosh}/* wasm_build/
'';
};
apps = {
install = {
type = "app";
program = "${self.packages.${system}.installScript}/bin/install.sh";
};
};
}
);

View File

@@ -1,6 +0,0 @@
{ lib }:
f: opts:
let
derivations = (lib.attrsets.mapAttrsToList f opts);
in
lib.lists.fold (a: b: a // b) { } derivations

View File

@@ -0,0 +1,19 @@
{
coreutils,
rsync,
writeShellScriptBin,
lib,
}:
flake:
let
installScript = writeShellScriptBin "install.sh" ''
${coreutils}/bin/mkdir -p wasm_build
${rsync}/bin/rsync --chmod=u+w -r ${flake.packages.default}/* wasm_build/
'';
in
lib.recursiveUpdate flake {
apps.install = {
type = "app";
program = "${installScript}/bin/install.sh";
};
}