aboutsummaryrefslogtreecommitdiff
path: root/src/nix-env/main.cc
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2004-02-06 10:59:06 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2004-02-06 10:59:06 +0000
commit49bafe1faf4eedf0f059740be4f99c700ee93fe7 (patch)
tree4a244ca54e78b4bf6bd66c08b156348b77f00165 /src/nix-env/main.cc
parent66e94d3275e9a0a549c28b7d0ad5f3f897e2fbf0 (diff)
* Use the profile pointed to by ~/.nix-profile if no --profile
argument is specified.
Diffstat (limited to 'src/nix-env/main.cc')
-rw-r--r--src/nix-env/main.cc17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/nix-env/main.cc b/src/nix-env/main.cc
index 20b7da655..00b6c7f8d 100644
--- a/src/nix-env/main.cc
+++ b/src/nix-env/main.cc
@@ -645,12 +645,11 @@ static void opSwitchProfile(Globals & globals,
{
if (opFlags.size() > 0)
throw UsageError(format("unknown flags `%1%'") % opFlags.front());
- if (opArgs.size() > 1)
- throw UsageError(format("`--profile' takes at most one argument"));
+ if (opArgs.size() != 1)
+ throw UsageError(format("`--profile' takes exactly one argument"));
- Path profile =
- absPath(opArgs.size() == 0 ? globals.profile : opArgs.front());
- Path profileLink = getHomeDir() + "/.nix-userenv";
+ Path profile = opArgs.front();
+ Path profileLink = getHomeDir() + "/.nix-profile";
switchLink(profileLink, profile);
}
@@ -680,7 +679,6 @@ void run(Strings args)
Operation op = 0;
Globals globals;
- globals.profile = canonPath(nixStateDir + "/profiles/default");
globals.nixExprPath = getDefNixExprPath();
for (Strings::iterator i = args.begin(); i != args.end(); ++i) {
@@ -723,6 +721,13 @@ void run(Strings args)
if (!op) throw UsageError("no operation specified");
+ if (globals.profile == "") {
+ Path profileLink = getHomeDir() + "/.nix-profile";
+ globals.profile = pathExists(profileLink)
+ ? absPath(readLink(profileLink), dirOf(profileLink))
+ : canonPath(nixStateDir + "/profiles/default");
+ }
+
openDB();
op(globals, opFlags, opArgs);