* Refactoring: move the user environment stuff into its own module.

This commit is contained in:
Eelco Dolstra 2010-04-19 10:47:56 +00:00
parent 5c31995bb8
commit b7ff69eb7c
4 changed files with 47 additions and 20 deletions

View File

@ -1,6 +1,7 @@
bin_PROGRAMS = nix-env
nix_env_SOURCES = nix-env.cc profiles.cc profiles.hh help.txt
nix_env_SOURCES = nix-env.cc profiles.cc user-env.cc profiles.hh help.txt
nix_env_LDADD = ../libmain/libmain.la ../libexpr/libexpr.la \
../libstore/libstore.la ../libutil/libutil.la \
../boost/format/libformat.la ${aterm_lib} @ADDITIONAL_NETWORK_LIBS@

View File

@ -12,6 +12,7 @@
#include "common-opts.hh"
#include "xml-writer.hh"
#include "store-api.hh"
#include "user-env.hh"
#include "util.hh"
#include <cerrno>
@ -192,25 +193,6 @@ static Path getDefNixExprPath()
}
static DrvInfos queryInstalled(EvalState & state, const Path & userEnv)
{
Path path = userEnv + "/manifest";
if (!pathExists(path))
return DrvInfos(); /* not an error, assume nothing installed */
throw Error("not implemented");
#if 0
Expr e = ATreadFromNamedFile(path.c_str());
if (!e) throw Error(format("cannot read Nix expression from `%1%'") % path);
DrvInfos elems;
// !!! getDerivations(state, e, "", ATermMap(1), elems);
return elems;
#endif
}
/* Ensure exclusive access to a profile. Any command that modifies
the profile first acquires this lock. */
static void lockProfile(PathLocks & lock, const Path & profile)

28
src/nix-env/user-env.cc Normal file
View File

@ -0,0 +1,28 @@
#include "util.hh"
#include "get-drvs.hh"
namespace nix {
DrvInfos queryInstalled(EvalState & state, const Path & userEnv)
{
Path path = userEnv + "/manifest";
if (!pathExists(path))
return DrvInfos(); /* not an error, assume nothing installed */
throw Error("not implemented");
#if 0
Expr e = ATreadFromNamedFile(path.c_str());
if (!e) throw Error(format("cannot read Nix expression from `%1%'") % path);
DrvInfos elems;
// !!! getDerivations(state, e, "", ATermMap(1), elems);
return elems;
#endif
}
}

16
src/nix-env/user-env.hh Normal file
View File

@ -0,0 +1,16 @@
#ifndef __USER_ENV_H
#define __USER_ENV_H
#include "get-drvs.hh"
namespace nix {
DrvInfos queryInstalled(EvalState & state, const Path & userEnv);
}
#endif /* !__USER_ENV_H */