diff options
author | tv <tv@shackspace.de> | 2015-07-11 19:44:12 +0200 |
---|---|---|
committer | tv <tv@shackspace.de> | 2015-07-11 19:44:12 +0200 |
commit | 2bc5c58d85990e483af8fde57ed5f2442351b69c (patch) | |
tree | 94cd29e6a98f1ce6228104055d0550e318242290 /old/modules/tv/users | |
parent | c5fcda1390afaba71133b2ee6ac1ddd0f559ef8c (diff) |
move old stuff
Diffstat (limited to 'old/modules/tv/users')
-rw-r--r-- | old/modules/tv/users/default.nix | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/old/modules/tv/users/default.nix b/old/modules/tv/users/default.nix new file mode 100644 index 000000000..719f57d70 --- /dev/null +++ b/old/modules/tv/users/default.nix @@ -0,0 +1,67 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.tv.users; + + opts = { + enable = mkOption { + default = true; + type = types.bool; + description = '' + If set to false, TODO... + ''; + }; + + packages = mkOption { + default = []; + #example = literalExample "[ pkgs.firefox pkgs.thunderbird ]"; + type = with types; listOf path; + description = '' + TODO this description is for environment.systemPackages + The set of packages that appear in + /run/current-system/sw. These packages are + automatically available to all users, and are + automatically updated every time you rebuild the system + configuration. (The latter is the main difference with + installing them in the default profile, + <filename>/nix/var/nix/profiles/default</filename>. + ''; + }; + }; +in + +{ + options.tv.users = mkOption { + default = {}; + type = with types; attrsOf optionSet; + options = [ opts ]; + description = '' + TODO + ''; + }; + + config = { + system.activationScripts."tv.users" = + let + bindir = name: packages: + pkgs.symlinkJoin "${name}-bindir" (map (path: path + "/" + "bin") packages); + in + '' + mkdir -m 0755 -p /run/tv.users + # TODO delete old + # TODO detect collisions + # TODO don't link .xxx-wrapped + ${concatStrings (mapAttrsToList (name: { packages, ... }: '' + mkdir -m 0755 -p /run/tv.users/${name} + ln -snf ${bindir name packages} /run/tv.users/${name}/bin + '') cfg)} + ''; + environment.shellInit = '' + # XXX lower precedence than ~/bin + PATH=/run/tv.users/$LOGNAME/bin:$PATH + export PATH + ''; + }; +} |