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:
Kane York 2020-07-24 21:09:44 -07:00 committed by kanepyork
parent 69f402563a
commit ef54f5da9f
65 changed files with 580 additions and 497 deletions

View file

@ -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

View file

@ -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);