2
0
Fork 0
genodepkgs/apps/default.nix

136 lines
2.7 KiB
Nix

{ system, self, nixpkgs, nixpkgsLocal, packages }:
let
dhallApps = let
mkApp = { drv, name ? drv.pname or drv.name, exe ? name }: {
inherit name;
value = {
type = "app";
program = "${drv}/bin/${exe}";
};
};
in builtins.listToAttrs [
(mkApp { drv = nixpkgsLocal.dhall; })
(mkApp {
drv = nixpkgsLocal.dhall-bash;
name = "dhall-to-bash";
})
(mkApp {
drv = nixpkgsLocal.dhall-json;
name = "dhall-to-json";
})
(mkApp {
drv = nixpkgsLocal.dhall-json;
name = "json-to-dhall";
})
(mkApp {
drv = nixpkgsLocal.dhall-json;
name = "dhall-to-yaml";
})
(mkApp {
drv = nixpkgsLocal.dhall-json;
name = "yaml-to-dhall";
})
];
in dhallApps // {
genode-make = {
type = "app";
program = nixpkgs.buildPackages.callPackage ./genode-make { };
};
linux-image = let
drv = import ./linux-image {
apps = self;
inherit nixpkgs packages;
};
in {
type = "app";
program = "${drv}/bin/linux-image";
};
generate-manifest = let
drv = import ./generate-manifest {
stdenv = packages.stdenv;
inherit nixpkgs;
};
in {
type = "app";
program = "${drv}/bin/generate-manifest";
};
render-init = let
drv = import ./render-init {
apps = self;
inherit nixpkgs packages;
};
in {
type = "app";
program = "${drv}/bin/render-init";
};
} // (if system == "x86_64-genode" then {
hw-image = let
drv = import ./hw-image {
stdenv = packages.stdenv;
apps = self;
inherit nixpkgs packages;
};
in {
type = "app";
program = "${drv}/bin/hw-image";
function = attrs: bootDesc:
nixpkgs.runCommand "image.elf" attrs
''XDG_CACHE_HOME=$TMPDIR ${drv}/bin/hw-image "${bootDesc}" > $out'';
};
hw-iso = let
drv = import ./hw-iso {
stdenv = packages.stdenv;
inherit nixpkgs packages;
inherit (self) hw-image;
};
in {
type = "app";
program = "${drv}/bin/hw-iso";
function = attrs: bootDesc:
nixpkgs.runCommand "hw.iso" attrs
''XDG_CACHE_HOME=$TMPDIR ${drv}/bin/hw-iso "${bootDesc}" > $out'';
};
nova-image = let
drv = import ./nova-image {
stdenv = packages.stdenv;
apps = self;
inherit nixpkgs packages;
};
in {
type = "app";
program = "${drv}/bin/nova-image";
};
nova-iso = let
drv = import ./nova-iso {
stdenv = packages.stdenv;
inherit nixpkgs packages;
inherit (self) nova-image;
};
in {
type = "app";
program = "${drv}/bin/nova-iso";
function = attrs: bootDesc:
nixpkgs.runCommand "nova.iso" attrs
''XDG_CACHE_HOME=$TMPDIR ${drv}/bin/nova-iso "${bootDesc}" > $out'';
};
} else
{ })