hydrate ${config.system.build.nixos-rebuild}/bin/nixos-rebuild ${cfg.operation}
sync
while read user;do
- remove_arg=-r
- if [[ "$(userenv_query "$user" .otherPackagesAction)" == keep ]];then
- remove_arg=
- fi
+ configured_action=$(userenv_query "$user" .otherPackagesAction)
+ action=
+ case "$configured_action" in
+ keep) action=-i;;
+ remove) action=-ir;;
+ set-remove) action=--set;;
+ *) die "Unexpected otherPackagesAction $configured_action for user $user"
+ esac
hydrate /run/wrappers/bin/sudo -u "$user" \
- ${pkgs.nix}/bin/nix-env -f '<nixpkgs>' $remove_arg -iA "$(userenv_query "$user" .package)"
+ ${pkgs.nix}/bin/nix-env -f '<nixpkgs>' "$action" -A "$(userenv_query "$user" .package)"
sync
done < <( config_query '.userEnvironments | keys []' )
''}