* Don't keep the derivation symlink when creating profile generations.

This commit is contained in:
Eelco Dolstra 2005-02-14 10:44:57 +00:00
parent 32429142cd
commit b0aba6ec2a

View file

@ -61,12 +61,11 @@ Generations findGenerations(Path profile, int & curGen)
} }
static void makeNames(const Path & profile, unsigned int num, static void makeName(const Path & profile, unsigned int num,
Path & outLink, Path & drvLink) Path & outLink)
{ {
Path prefix = (format("%1%-%2%") % profile % num).str(); Path prefix = (format("%1%-%2%") % profile % num).str();
outLink = prefix + "-link"; outLink = prefix + "-link";
drvLink = prefix + "-drv";
} }
@ -79,10 +78,10 @@ Path createGeneration(Path profile, Path outPath, Path drvPath)
unsigned int num = gens.size() > 0 ? gens.front().number : 0; unsigned int num = gens.size() > 0 ? gens.front().number : 0;
/* Create the new generation. */ /* Create the new generation. */
Path outLink, drvLink; Path outLink;
while (1) { while (1) {
makeNames(profile, num, outLink, drvLink); makeName(profile, num, outLink);
if (symlink(outPath.c_str(), outLink.c_str()) == 0) break; if (symlink(outPath.c_str(), outLink.c_str()) == 0) break;
if (errno != EEXIST) if (errno != EEXIST)
throw SysError(format("creating symlink `%1%'") % outLink); throw SysError(format("creating symlink `%1%'") % outLink);
@ -90,9 +89,6 @@ Path createGeneration(Path profile, Path outPath, Path drvPath)
num++; num++;
} }
if (symlink(drvPath.c_str(), drvLink.c_str()) != 0)
throw SysError(format("creating symlink `%1%'") % drvLink);
return outLink; return outLink;
} }
@ -106,10 +102,9 @@ static void removeFile(const Path & path)
void deleteGeneration(const Path & profile, unsigned int gen) void deleteGeneration(const Path & profile, unsigned int gen)
{ {
Path generation, gcrootDrv; Path generation;
makeNames(profile, gen, generation, gcrootDrv); makeName(profile, gen, generation);
removeFile(generation); removeFile(generation);
if (pathExists(gcrootDrv)) removeFile(gcrootDrv);
} }