forked from lix-project/lix
06a75a7e0c
of the current profile, e.g., $ nix-env --list-generations ... 39 2004-02-02 17:53:53 40 2004-02-02 17:55:18 41 2004-02-02 17:55:41 42 2004-02-02 17:55:50 (current) $ nix-env --switch-generation 39 $ ls -l /nix/var/nix/profiles/default ... default -> default-39-link * Also a command `--rollback' which is just a convenience operation to rollback to the oldest generation younger than the current one. Note that generations properly form a tree. E.g., if after switching to generation 39, we perform an installation action, a generation 43 is created which is a descendant of 39, not 42. So a rollback from 43 ought to go back to 39. This is not currently implemented; generations form a linear sequence.
37 lines
633 B
C++
37 lines
633 B
C++
#ifndef __PROFILES_H
|
|
#define __PROFILES_H
|
|
|
|
#include <string>
|
|
|
|
#include "util.hh"
|
|
|
|
|
|
struct Generation
|
|
{
|
|
int number;
|
|
Path path;
|
|
time_t creationTime;
|
|
Generation()
|
|
{
|
|
number = -1;
|
|
}
|
|
operator bool() const
|
|
{
|
|
return number != -1;
|
|
}
|
|
};
|
|
|
|
typedef list<Generation> Generations;
|
|
|
|
|
|
/* Returns the list of currently present generations for the specified
|
|
profile, sorted by generation number. */
|
|
Generations findGenerations(Path profile, int & curGen);
|
|
|
|
Path createGeneration(Path profile, Path outPath, Path drvPath);
|
|
|
|
void switchLink(Path link, Path target);
|
|
|
|
|
|
#endif /* !__PROFILES_H */
|