X-Git-Url: http://git.scottworley.com/nix-profile-gc/blobdiff_plain/0c0420e86ec3391788a3b37022447bfd00f66443..HEAD:/modules/profile-gc.nix diff --git a/modules/profile-gc.nix b/modules/profile-gc.nix index 5444798..6963264 100644 --- a/modules/profile-gc.nix +++ b/modules/profile-gc.nix @@ -153,7 +153,7 @@ in { } declare -A active_targets - while read target;do + while read -r target;do active_targets[$target]=1 done < <( verbose_topn ${cfg.logdir}/active-system "" ${escapeShellArg cfg.keepLastActiveSystem} @@ -162,12 +162,12 @@ in { now=$(${pkgs.coreutils}/bin/date +%s) age_threshold="$(< ${parse-duration cfg.keepLatest})" - while read profile;do + while read -r profile;do echo "Contemplating profiles for $profile:" >&2 unset active declare -A active - while read p;do - active[$p]=1 + while read -r pname;do + active[$pname]=1 done < <(verbose_topn ${cfg.logdir}/active-profiles "$profile" ${escapeShellArg cfg.keepLastActive}) current=$(${pkgs.coreutils}/bin/readlink "$profile") currentgen=''${current%-link} @@ -179,7 +179,8 @@ in { echo "(Disregarding unrelated profile $p)" >&2 continue fi - if [[ "$p" == "$current" ]];then + pname=$(${pkgs.coreutils}/bin/basename "$p") + if [[ "$pname" == "$current" ]];then echo "Keeeping current profile $p" >&2 continue fi @@ -187,7 +188,7 @@ in { echo "Keeeping active system/boot profile $p" >&2 continue fi - if [[ "''${active[$p]:-}" ]];then + if [[ "''${active[$pname]:-}" ]];then echo "Keeeping active profile $p" >&2 continue fi @@ -208,7 +209,7 @@ in { rm "$p" ''} done - done < <(${pkgs.findutils}/bin/find ''${NIX_STATE_DIR:-/nix/var/nix}/profiles/ -type l -not -name '*[0-9]-link') + done < <(${pkgs.findutils}/bin/find "''${NIX_STATE_DIR:-/nix/var/nix}/profiles/" -type l -not -name '*[0-9]-link') ''; systemd.timers.profile-gc-log-active = { wantedBy = [ "timers.target" ];