forked from lix-project/lix
* Use the profile pointed to by ~/.nix-profile if no --profile
argument is specified.
This commit is contained in:
parent
66e94d3275
commit
49bafe1faf
|
@ -101,7 +101,7 @@ bool pathExists(const Path & path)
|
||||||
{
|
{
|
||||||
int res;
|
int res;
|
||||||
struct stat st;
|
struct stat st;
|
||||||
res = stat(path.c_str(), &st);
|
res = lstat(path.c_str(), &st);
|
||||||
if (!res) return true;
|
if (!res) return true;
|
||||||
if (errno != ENOENT)
|
if (errno != ENOENT)
|
||||||
throw SysError(format("getting status of %1%") % path);
|
throw SysError(format("getting status of %1%") % path);
|
||||||
|
|
|
@ -645,12 +645,11 @@ static void opSwitchProfile(Globals & globals,
|
||||||
{
|
{
|
||||||
if (opFlags.size() > 0)
|
if (opFlags.size() > 0)
|
||||||
throw UsageError(format("unknown flags `%1%'") % opFlags.front());
|
throw UsageError(format("unknown flags `%1%'") % opFlags.front());
|
||||||
if (opArgs.size() > 1)
|
if (opArgs.size() != 1)
|
||||||
throw UsageError(format("`--profile' takes at most one argument"));
|
throw UsageError(format("`--profile' takes exactly one argument"));
|
||||||
|
|
||||||
Path profile =
|
Path profile = opArgs.front();
|
||||||
absPath(opArgs.size() == 0 ? globals.profile : opArgs.front());
|
Path profileLink = getHomeDir() + "/.nix-profile";
|
||||||
Path profileLink = getHomeDir() + "/.nix-userenv";
|
|
||||||
|
|
||||||
switchLink(profileLink, profile);
|
switchLink(profileLink, profile);
|
||||||
}
|
}
|
||||||
|
@ -680,7 +679,6 @@ void run(Strings args)
|
||||||
Operation op = 0;
|
Operation op = 0;
|
||||||
|
|
||||||
Globals globals;
|
Globals globals;
|
||||||
globals.profile = canonPath(nixStateDir + "/profiles/default");
|
|
||||||
globals.nixExprPath = getDefNixExprPath();
|
globals.nixExprPath = getDefNixExprPath();
|
||||||
|
|
||||||
for (Strings::iterator i = args.begin(); i != args.end(); ++i) {
|
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 (!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();
|
openDB();
|
||||||
|
|
||||||
op(globals, opFlags, opArgs);
|
op(globals, opFlags, opArgs);
|
||||||
|
|
Loading…
Reference in a new issue