mirror of
https://github.com/NixOS/nix
synced 2025-06-25 10:41:16 +02:00
Delete dead code
We had multiple copies of some static functions after splitting out `DerivationBuilder` by mistake.
This commit is contained in:
parent
3d39864b96
commit
46030181d4
2 changed files with 26 additions and 59 deletions
|
@ -971,64 +971,6 @@ Goal::Co DerivationGoal::repairClosure()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void chmod_(const Path & path, mode_t mode)
|
|
||||||
{
|
|
||||||
if (chmod(path.c_str(), mode) == -1)
|
|
||||||
throw SysError("setting permissions on '%s'", path);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Move/rename path 'src' to 'dst'. Temporarily make 'src' writable if
|
|
||||||
it's a directory and we're not root (to be able to update the
|
|
||||||
directory's parent link ".."). */
|
|
||||||
static void movePath(const Path & src, const Path & dst)
|
|
||||||
{
|
|
||||||
auto st = lstat(src);
|
|
||||||
|
|
||||||
bool changePerm = (
|
|
||||||
#ifndef _WIN32
|
|
||||||
geteuid()
|
|
||||||
#else
|
|
||||||
!isRootUser()
|
|
||||||
#endif
|
|
||||||
&& S_ISDIR(st.st_mode) && !(st.st_mode & S_IWUSR));
|
|
||||||
|
|
||||||
if (changePerm)
|
|
||||||
chmod_(src, st.st_mode | S_IWUSR);
|
|
||||||
|
|
||||||
std::filesystem::rename(src, dst);
|
|
||||||
|
|
||||||
if (changePerm)
|
|
||||||
chmod_(dst, st.st_mode);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void replaceValidPath(const Path & storePath, const Path & tmpPath)
|
|
||||||
{
|
|
||||||
/* We can't atomically replace storePath (the original) with
|
|
||||||
tmpPath (the replacement), so we have to move it out of the
|
|
||||||
way first. We'd better not be interrupted here, because if
|
|
||||||
we're repairing (say) Glibc, we end up with a broken system. */
|
|
||||||
Path oldPath = fmt("%1%.old-%2%-%3%", storePath, getpid(), rand());
|
|
||||||
if (pathExists(storePath))
|
|
||||||
movePath(storePath, oldPath);
|
|
||||||
|
|
||||||
try {
|
|
||||||
movePath(tmpPath, storePath);
|
|
||||||
} catch (...) {
|
|
||||||
try {
|
|
||||||
// attempt to recover
|
|
||||||
movePath(oldPath, storePath);
|
|
||||||
} catch (...) {
|
|
||||||
ignoreExceptionExceptInterrupt();
|
|
||||||
}
|
|
||||||
throw;
|
|
||||||
}
|
|
||||||
|
|
||||||
deletePath(oldPath);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void runPostBuildHook(
|
void runPostBuildHook(
|
||||||
Store & store,
|
Store & store,
|
||||||
Logger & logger,
|
Logger & logger,
|
||||||
|
|
|
@ -661,7 +661,32 @@ static void movePath(const Path & src, const Path & dst)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
extern void replaceValidPath(const Path & storePath, const Path & tmpPath);
|
static void replaceValidPath(const Path & storePath, const Path & tmpPath)
|
||||||
|
{
|
||||||
|
/* We can't atomically replace storePath (the original) with
|
||||||
|
tmpPath (the replacement), so we have to move it out of the
|
||||||
|
way first. We'd better not be interrupted here, because if
|
||||||
|
we're repairing (say) Glibc, we end up with a broken system. */
|
||||||
|
Path oldPath = fmt("%1%.old-%2%-%3%", storePath, getpid(), rand());
|
||||||
|
if (pathExists(storePath))
|
||||||
|
movePath(storePath, oldPath);
|
||||||
|
|
||||||
|
try {
|
||||||
|
movePath(tmpPath, storePath);
|
||||||
|
} catch (...) {
|
||||||
|
try {
|
||||||
|
// attempt to recover
|
||||||
|
movePath(oldPath, storePath);
|
||||||
|
} catch (...) {
|
||||||
|
ignoreExceptionExceptInterrupt();
|
||||||
|
}
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
|
||||||
|
deletePath(oldPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool DerivationBuilderImpl::cleanupDecideWhetherDiskFull()
|
bool DerivationBuilderImpl::cleanupDecideWhetherDiskFull()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue