diff --git a/default.nix b/default.nix index 7c61704..0664728 100644 --- a/default.nix +++ b/default.nix @@ -39,7 +39,10 @@ let source = mkOption { type = nullOr (either path str); default = null; - description = "Path of the source file or directory - be sure to quote paths you don't want nix to copy to the store."; + description = '' + Path of the source file or directory. + Be sure to quote paths you don't want nix to copy to the store. + ''; }; executable = mkOption { @@ -92,6 +95,20 @@ in ''; }; enable = mkEnableOption "Arbitrary Symlink Manager"; + impure = mkOption { + type = bool; + default = false; + description = '' + Expand ~ and environment variables in paths, similar to if you were in a shell. + ''; + }; + variables = mkOption { + type = attrsOf str; + default = { }; + description = '' + A set of environment variables to use in the deployment. + ''; + }; }; files = mkOption { description = "Files to link"; @@ -146,6 +163,7 @@ in text = ( builtins.toJSON { inherit files; + inherit (config.envionrment.arbys) impure; clobber_by_default = config.environment.arbys.clobber; version = 1; } @@ -195,11 +213,10 @@ in "arbys-copy.service" ]; after = [ "arbys-prep.service" ]; + environment = config.environment.arbys.variables; script = let - linker = lib.getExe ( - pkgs.smfh or (pkgs.callPackage (pkgs.rustPlatform.buildRustPackage ./smfh.nix { })) - ); + linker = lib.getExe (pkgs.smfh or (pkgs.callPackage ./smfh.nix { })); in '' new_manifest=${manifest}