Remove the drain
argument from readFile
Now it is always `drain` (see previous commit).
This commit is contained in:
parent
5a34a473dd
commit
7afcb5af98
|
@ -419,7 +419,7 @@ void LocalStore::findRuntimeRoots(Roots & roots, bool censor)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
auto mapFile = fmt("/proc/%s/maps", ent->d_name);
|
auto mapFile = fmt("/proc/%s/maps", ent->d_name);
|
||||||
auto mapLines = tokenizeString<std::vector<string>>(readFile(mapFile, true), "\n");
|
auto mapLines = tokenizeString<std::vector<string>>(readFile(mapFile), "\n");
|
||||||
for (const auto & line : mapLines) {
|
for (const auto & line : mapLines) {
|
||||||
auto match = std::smatch{};
|
auto match = std::smatch{};
|
||||||
if (std::regex_match(line, match, mapRegex))
|
if (std::regex_match(line, match, mapRegex))
|
||||||
|
@ -427,7 +427,7 @@ void LocalStore::findRuntimeRoots(Roots & roots, bool censor)
|
||||||
}
|
}
|
||||||
|
|
||||||
auto envFile = fmt("/proc/%s/environ", ent->d_name);
|
auto envFile = fmt("/proc/%s/environ", ent->d_name);
|
||||||
auto envString = readFile(envFile, true);
|
auto envString = readFile(envFile);
|
||||||
auto env_end = std::sregex_iterator{};
|
auto env_end = std::sregex_iterator{};
|
||||||
for (auto i = std::sregex_iterator{envString.begin(), envString.end(), storePathRegex}; i != env_end; ++i)
|
for (auto i = std::sregex_iterator{envString.begin(), envString.end(), storePathRegex}; i != env_end; ++i)
|
||||||
unchecked[i->str()].emplace(envFile);
|
unchecked[i->str()].emplace(envFile);
|
||||||
|
|
|
@ -148,6 +148,9 @@ struct StringSink : Sink
|
||||||
{
|
{
|
||||||
ref<std::string> s;
|
ref<std::string> s;
|
||||||
StringSink() : s(make_ref<std::string>()) { };
|
StringSink() : s(make_ref<std::string>()) { };
|
||||||
|
explicit StringSink(const size_t reservedSize) : s(make_ref<std::string>()) {
|
||||||
|
s->reserve(reservedSize);
|
||||||
|
};
|
||||||
StringSink(ref<std::string> s) : s(s) { };
|
StringSink(ref<std::string> s) : s(s) { };
|
||||||
void operator () (const unsigned char * data, size_t len) override;
|
void operator () (const unsigned char * data, size_t len) override;
|
||||||
};
|
};
|
||||||
|
|
|
@ -316,12 +316,12 @@ string readFile(int fd)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
string readFile(const Path & path, bool drain)
|
string readFile(const Path & path)
|
||||||
{
|
{
|
||||||
AutoCloseFD fd = open(path.c_str(), O_RDONLY | O_CLOEXEC);
|
AutoCloseFD fd = open(path.c_str(), O_RDONLY | O_CLOEXEC);
|
||||||
if (!fd)
|
if (!fd)
|
||||||
throw SysError(format("opening file '%1%'") % path);
|
throw SysError(format("opening file '%1%'") % path);
|
||||||
return drain ? drainFD(fd.get()) : readFile(fd.get());
|
return readFile(fd.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -103,7 +103,7 @@ unsigned char getFileType(const Path & path);
|
||||||
|
|
||||||
/* Read the contents of a file into a string. */
|
/* Read the contents of a file into a string. */
|
||||||
string readFile(int fd);
|
string readFile(int fd);
|
||||||
string readFile(const Path & path, bool drain = false);
|
string readFile(const Path & path);
|
||||||
void readFile(const Path & path, Sink & sink);
|
void readFile(const Path & path, Sink & sink);
|
||||||
|
|
||||||
/* Write a string to a file. */
|
/* Write a string to a file. */
|
||||||
|
|
|
@ -136,7 +136,7 @@ struct CmdLsNar : Command, MixLs
|
||||||
|
|
||||||
void run() override
|
void run() override
|
||||||
{
|
{
|
||||||
list(makeNarAccessor(make_ref<std::string>(readFile(narPath, true))));
|
list(makeNarAccessor(make_ref<std::string>(readFile(narPath))));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue