fix(3p/nix): apply all clang-tidy fixes
Change-Id: I265e763393422ee1881653527c91024458060825 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1432 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
This commit is contained in:
parent
69f402563a
commit
ef54f5da9f
65 changed files with 580 additions and 497 deletions
|
|
@ -35,15 +35,17 @@ static void createLinks(const Path& srcDir, const Path& dstDir, int priority) {
|
|||
}
|
||||
|
||||
for (const auto& ent : srcFiles) {
|
||||
if (ent.name[0] == '.') /* not matched by glob */
|
||||
if (ent.name[0] == '.') { /* not matched by glob */
|
||||
continue;
|
||||
}
|
||||
auto srcFile = srcDir + "/" + ent.name;
|
||||
auto dstFile = dstDir + "/" + ent.name;
|
||||
|
||||
struct stat srcSt;
|
||||
struct stat srcSt {};
|
||||
try {
|
||||
if (stat(srcFile.c_str(), &srcSt) == -1)
|
||||
if (stat(srcFile.c_str(), &srcSt) == -1) {
|
||||
throw SysError("getting status of '%1%'", srcFile);
|
||||
}
|
||||
} catch (SysError& e) {
|
||||
if (e.errNo == ENOENT || e.errNo == ENOTDIR) {
|
||||
LOG(ERROR) << "warning: skipping dangling symlink '" << dstFile << "'";
|
||||
|
|
@ -61,11 +63,12 @@ static void createLinks(const Path& srcDir, const Path& dstDir, int priority) {
|
|||
if (absl::EndsWith(srcFile, "/propagated-build-inputs") ||
|
||||
absl::EndsWith(srcFile, "/nix-support") ||
|
||||
absl::EndsWith(srcFile, "/perllocal.pod") ||
|
||||
absl::EndsWith(srcFile, "/info/dir") || absl::EndsWith(srcFile, "/log"))
|
||||
absl::EndsWith(srcFile, "/info/dir") ||
|
||||
absl::EndsWith(srcFile, "/log")) {
|
||||
continue;
|
||||
|
||||
else if (S_ISDIR(srcSt.st_mode)) {
|
||||
struct stat dstSt;
|
||||
} else if (S_ISDIR(srcSt.st_mode)) {
|
||||
struct stat dstSt {};
|
||||
auto res = lstat(dstFile.c_str(), &dstSt);
|
||||
if (res == 0) {
|
||||
if (S_ISDIR(dstSt.st_mode)) {
|
||||
|
|
@ -73,45 +76,53 @@ static void createLinks(const Path& srcDir, const Path& dstDir, int priority) {
|
|||
continue;
|
||||
} else if (S_ISLNK(dstSt.st_mode)) {
|
||||
auto target = canonPath(dstFile, true);
|
||||
if (!S_ISDIR(lstat(target).st_mode))
|
||||
if (!S_ISDIR(lstat(target).st_mode)) {
|
||||
throw Error("collision between '%1%' and non-directory '%2%'",
|
||||
srcFile, target);
|
||||
if (unlink(dstFile.c_str()) == -1)
|
||||
}
|
||||
if (unlink(dstFile.c_str()) == -1) {
|
||||
throw SysError(format("unlinking '%1%'") % dstFile);
|
||||
if (mkdir(dstFile.c_str(), 0755) == -1)
|
||||
}
|
||||
if (mkdir(dstFile.c_str(), 0755) == -1) {
|
||||
throw SysError(format("creating directory '%1%'"));
|
||||
}
|
||||
createLinks(target, dstFile, priorities[dstFile]);
|
||||
createLinks(srcFile, dstFile, priority);
|
||||
continue;
|
||||
}
|
||||
} else if (errno != ENOENT)
|
||||
} else if (errno != ENOENT) {
|
||||
throw SysError(format("getting status of '%1%'") % dstFile);
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
struct stat dstSt;
|
||||
struct stat dstSt {};
|
||||
auto res = lstat(dstFile.c_str(), &dstSt);
|
||||
if (res == 0) {
|
||||
if (S_ISLNK(dstSt.st_mode)) {
|
||||
auto prevPriority = priorities[dstFile];
|
||||
if (prevPriority == priority)
|
||||
if (prevPriority == priority) {
|
||||
throw Error(
|
||||
"packages '%1%' and '%2%' have the same priority %3%; "
|
||||
"use 'nix-env --set-flag priority NUMBER INSTALLED_PKGNAME' "
|
||||
"to change the priority of one of the conflicting packages"
|
||||
" (0 being the highest priority)",
|
||||
srcFile, readLink(dstFile), priority);
|
||||
}
|
||||
if (prevPriority < priority) {
|
||||
continue;
|
||||
}
|
||||
if (unlink(dstFile.c_str()) == -1)
|
||||
if (unlink(dstFile.c_str()) == -1) {
|
||||
throw SysError(format("unlinking '%1%'") % dstFile);
|
||||
} else if (S_ISDIR(dstSt.st_mode))
|
||||
}
|
||||
} else if (S_ISDIR(dstSt.st_mode)) {
|
||||
throw Error(
|
||||
"collision between non-directory '%1%' and directory '%2%'",
|
||||
srcFile, dstFile);
|
||||
} else if (errno != ENOENT)
|
||||
}
|
||||
} else if (errno != ENOENT) {
|
||||
throw SysError(format("getting status of '%1%'") % dstFile);
|
||||
}
|
||||
}
|
||||
|
||||
createSymlink(srcFile, dstFile);
|
||||
|
|
@ -201,10 +212,11 @@ void builtinBuildenv(const BasicDerivation& drv) {
|
|||
return a.priority < b.priority ||
|
||||
(a.priority == b.priority && a.path < b.path);
|
||||
});
|
||||
for (const auto& pkg : pkgs)
|
||||
for (const auto& pkg : pkgs) {
|
||||
if (pkg.active) {
|
||||
addPkg(pkg.path, pkg.priority);
|
||||
}
|
||||
}
|
||||
|
||||
/* Symlink to the packages that have been "propagated" by packages
|
||||
* installed by the user (i.e., package X declares that it wants Y
|
||||
|
|
|
|||
|
|
@ -20,8 +20,9 @@ void builtinFetchurl(const BasicDerivation& drv, const std::string& netrcData) {
|
|||
|
||||
auto getAttr = [&](const std::string& name) {
|
||||
auto i = drv.env.find(name);
|
||||
if (i == drv.env.end())
|
||||
if (i == drv.env.end()) {
|
||||
throw Error(format("attribute '%s' missing") % name);
|
||||
}
|
||||
return i->second;
|
||||
};
|
||||
|
||||
|
|
@ -47,21 +48,24 @@ void builtinFetchurl(const BasicDerivation& drv, const std::string& netrcData) {
|
|||
decompressor->finish();
|
||||
});
|
||||
|
||||
if (unpack)
|
||||
if (unpack) {
|
||||
restorePath(storePath, *source);
|
||||
else
|
||||
} else {
|
||||
writeFile(storePath, *source);
|
||||
}
|
||||
|
||||
auto executable = drv.env.find("executable");
|
||||
if (executable != drv.env.end() && executable->second == "1") {
|
||||
if (chmod(storePath.c_str(), 0755) == -1)
|
||||
if (chmod(storePath.c_str(), 0755) == -1) {
|
||||
throw SysError(format("making '%1%' executable") % storePath);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/* Try the hashed mirrors first. */
|
||||
if (getAttr("outputHashMode") == "flat")
|
||||
for (auto hashedMirror : settings.hashedMirrors.get()) try {
|
||||
if (getAttr("outputHashMode") == "flat") {
|
||||
for (auto hashedMirror : settings.hashedMirrors.get()) {
|
||||
try {
|
||||
if (!absl::EndsWith(hashedMirror, "/")) {
|
||||
hashedMirror += '/';
|
||||
}
|
||||
|
|
@ -73,6 +77,8 @@ void builtinFetchurl(const BasicDerivation& drv, const std::string& netrcData) {
|
|||
} catch (Error& e) {
|
||||
LOG(ERROR) << e.what();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Otherwise try the specified URL. */
|
||||
fetch(mainUrl);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue