diff --git a/src/libstore/profiles.cc b/src/libstore/profiles.cc index 239047dd6..d8717ab8b 100644 --- a/src/libstore/profiles.cc +++ b/src/libstore/profiles.cc @@ -320,6 +320,17 @@ Path rootProfilesDir() return settings.nixStateDir + "/profiles/per-user/root"; } +Path getDefaultProfileLink() +{ + if (getuid() == 0) { + return settings.nixStateDir + "/profiles/default"; + } + + if (settings.useXDGBaseDirectories) { + return createNixStateDir() + "/profile"; + } + return getHome() + "/.nix-profile"; +} Path getDefaultProfile() { diff --git a/src/libstore/profiles.hh b/src/libstore/profiles.hh index 193c0bf21..bed8bf527 100644 --- a/src/libstore/profiles.hh +++ b/src/libstore/profiles.hh @@ -227,6 +227,12 @@ Path defaultChannelsDir(); */ Path rootChannelsDir(); +/** + * Get the symlink that is used as the default profile, but do not resolve it. + * (see getDefaultProfile() for where that link is.) + */ +Path getDefaultProfileLink(); + /** * Resolve the default profile (~/.nix-profile by default, * $XDG_STATE_HOME/nix/profile if XDG Base Directory Support is enabled),