aboutsummaryrefslogtreecommitdiff
path: root/modules/nickel
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nickel')
-rw-r--r--modules/nickel/default.nix34
1 files changed, 25 insertions, 9 deletions
diff --git a/modules/nickel/default.nix b/modules/nickel/default.nix
index 30b40d4..7663e93 100644
--- a/modules/nickel/default.nix
+++ b/modules/nickel/default.nix
@@ -53,13 +53,31 @@ in {
package = mkPackageOption pkgs "nickel-menu" {};
- _allFiles = mkOption {
+ _createdFiles = mkOption {
type = types.package;
readOnly = true;
internal = true;
- default = symlinkJoin {
- name = "nickel-files";
- paths = mapAttrsToList (v: v._package) cfg.file;
+ default = pkgs.buildEnv {
+ name = "nickel-files-created";
+ paths = mapAttrsToList (_: v: v._package) cfg.file;
+ extraPrefix = cfg.devicePath;
+ };
+ };
+
+ finalPackage = mkOption {
+ type = types.package;
+ readOnly = true;
+ internal = true;
+ default = pkgs.mergePaths {
+ name = "nickel-menu-package";
+ paths = [
+ (pkgs.linkFarm "nickel-menu" [{
+ name = removePrefix "/" cfg.devicePath;
+ path = cfg.package.out;
+ }])
+ cfg._createdFiles
+ cfg.package.KoboRoot
+ ];
};
};
@@ -68,7 +86,6 @@ in {
default = ".adds/nm";
readOnly = true;
internal = true;
- # description = "Relative path to nickelMenu within src";
};
devicePath = mkOption {
@@ -139,6 +156,8 @@ in {
config = mkMerge [
{
+ info.nickel = cfg.enable;
+
nickel = {
file = mkMerge [
(mapAttrs (_: v: {
@@ -156,10 +175,7 @@ in {
};
}
(mkIf cfg.enable {
- koboroot.include = singleton (pkgs.linkFarm [{
- name = cfg.devicePath;
- path = cfg._allFiles;
- }]);
+ koboroot.include = singleton cfg.finalPackage;
})
];
}