[cache_repair, thin_repair] fix bug introduced in recent patch

I hadn't realised that check_file_exists() also checked that it was
a regular file, which we don't want for the couple of uses I recently
added.

This patch adds an optional arg must_be_regular_file, and defaults
it to true, preserving the original behaviour.  The recent additions
have this set to false.
This commit is contained in:
Joe Thornber
2019-10-14 09:21:38 +01:00
parent 1dd7b454bb
commit 0fc7529c01
4 changed files with 5 additions and 5 deletions

View File

@ -66,13 +66,13 @@ file_utils::file_exists(string const &path) {
}
void
file_utils::check_file_exists(string const &file) {
file_utils::check_file_exists(string const &file, bool must_be_regular_file) {
struct stat info;
int r = ::stat(file.c_str(), &info);
if (r)
throw runtime_error("Couldn't stat file");
if (!S_ISREG(info.st_mode))
if (must_be_regular_file && !S_ISREG(info.st_mode))
throw runtime_error("Not a regular file");
}