mirror of
https://github.com/NixOS/nix
synced 2025-06-27 08:31:16 +02:00
Use proper quotes everywhere
This commit is contained in:
parent
373fad75e1
commit
11849a320e
54 changed files with 548 additions and 543 deletions
|
@ -43,7 +43,7 @@ static void dumpContents(const Path & path, size_t size,
|
|||
writeLongLong(size, sink);
|
||||
|
||||
AutoCloseFD fd = open(path.c_str(), O_RDONLY);
|
||||
if (fd == -1) throw SysError(format("opening file `%1%'") % path);
|
||||
if (fd == -1) throw SysError(format("opening file ‘%1%’") % path);
|
||||
|
||||
unsigned char buf[65536];
|
||||
size_t left = size;
|
||||
|
@ -63,7 +63,7 @@ static void dump(const Path & path, Sink & sink, PathFilter & filter)
|
|||
{
|
||||
struct stat st;
|
||||
if (lstat(path.c_str(), &st))
|
||||
throw SysError(format("getting attributes of path `%1%'") % path);
|
||||
throw SysError(format("getting attributes of path ‘%1%’") % path);
|
||||
|
||||
writeString("(", sink);
|
||||
|
||||
|
@ -89,11 +89,11 @@ static void dump(const Path & path, Sink & sink, PathFilter & filter)
|
|||
string name(i.name);
|
||||
size_t pos = i.name.find(caseHackSuffix);
|
||||
if (pos != string::npos) {
|
||||
printMsg(lvlDebug, format("removing case hack suffix from `%1%'") % (path + "/" + i.name));
|
||||
printMsg(lvlDebug, format("removing case hack suffix from ‘%1%’") % (path + "/" + i.name));
|
||||
name.erase(pos);
|
||||
}
|
||||
if (unhacked.find(name) != unhacked.end())
|
||||
throw Error(format("file name collision in between `%1%' and `%2%'")
|
||||
throw Error(format("file name collision in between ‘%1%’ and ‘%2%’")
|
||||
% (path + "/" + unhacked[name]) % (path + "/" + i.name));
|
||||
unhacked[name] = i.name;
|
||||
} else
|
||||
|
@ -118,7 +118,7 @@ static void dump(const Path & path, Sink & sink, PathFilter & filter)
|
|||
writeString(readLink(path), sink);
|
||||
}
|
||||
|
||||
else throw Error(format("file `%1%' has an unsupported type") % path);
|
||||
else throw Error(format("file ‘%1%’ has an unsupported type") % path);
|
||||
|
||||
writeString(")", sink);
|
||||
}
|
||||
|
@ -247,14 +247,14 @@ static void parse(ParseSink & sink, Source & source, const Path & path)
|
|||
} else if (s == "name") {
|
||||
name = readString(source);
|
||||
if (name.empty() || name == "." || name == ".." || name.find('/') != string::npos || name.find((char) 0) != string::npos)
|
||||
throw Error(format("NAR contains invalid file name `%1%'") % name);
|
||||
throw Error(format("NAR contains invalid file name ‘%1%’") % name);
|
||||
if (name <= prevName)
|
||||
throw Error("NAR directory is not sorted");
|
||||
prevName = name;
|
||||
if (useCaseHack) {
|
||||
auto i = names.find(name);
|
||||
if (i != names.end()) {
|
||||
printMsg(lvlDebug, format("case collision between `%1%' and `%2%'") % i->first % name);
|
||||
printMsg(lvlDebug, format("case collision between ‘%1%’ and ‘%2%’") % i->first % name);
|
||||
name += caseHackSuffix;
|
||||
name += int2String(++i->second);
|
||||
} else
|
||||
|
@ -303,7 +303,7 @@ struct RestoreSink : ParseSink
|
|||
{
|
||||
Path p = dstPath + path;
|
||||
if (mkdir(p.c_str(), 0777) == -1)
|
||||
throw SysError(format("creating directory `%1%'") % p);
|
||||
throw SysError(format("creating directory ‘%1%’") % p);
|
||||
};
|
||||
|
||||
void createRegularFile(const Path & path)
|
||||
|
@ -311,7 +311,7 @@ struct RestoreSink : ParseSink
|
|||
Path p = dstPath + path;
|
||||
fd.close();
|
||||
fd = open(p.c_str(), O_CREAT | O_EXCL | O_WRONLY, 0666);
|
||||
if (fd == -1) throw SysError(format("creating file `%1%'") % p);
|
||||
if (fd == -1) throw SysError(format("creating file ‘%1%’") % p);
|
||||
}
|
||||
|
||||
void isExecutable()
|
||||
|
|
|
@ -89,11 +89,11 @@ Hash parseHash(HashType ht, const string & s)
|
|||
{
|
||||
Hash hash(ht);
|
||||
if (s.length() != hash.hashSize * 2)
|
||||
throw Error(format("invalid hash `%1%'") % s);
|
||||
throw Error(format("invalid hash ‘%1%’") % s);
|
||||
for (unsigned int i = 0; i < hash.hashSize; i++) {
|
||||
string s2(s, i * 2, 2);
|
||||
if (!isxdigit(s2[0]) || !isxdigit(s2[1]))
|
||||
throw Error(format("invalid hash `%1%'") % s);
|
||||
throw Error(format("invalid hash ‘%1%’") % s);
|
||||
std::istringstream str(s2);
|
||||
int n;
|
||||
str >> std::hex >> n;
|
||||
|
@ -200,10 +200,10 @@ Hash parseHash32(HashType ht, const string & s)
|
|||
for (digit = 0; digit < base32Chars.size(); ++digit) /* !!! slow */
|
||||
if (chars[digit] == c) break;
|
||||
if (digit >= 32)
|
||||
throw Error(format("invalid base-32 hash `%1%'") % s);
|
||||
throw Error(format("invalid base-32 hash ‘%1%’") % s);
|
||||
if (mul(hash.hash, 32, hash.hashSize) ||
|
||||
add(hash.hash, digit, hash.hashSize))
|
||||
throw Error(format("base-32 hash `%1%' is too large") % s);
|
||||
throw Error(format("base-32 hash ‘%1%’ is too large") % s);
|
||||
}
|
||||
|
||||
return hash;
|
||||
|
@ -220,7 +220,7 @@ Hash parseHash16or32(HashType ht, const string & s)
|
|||
/* base-32 representation */
|
||||
hash = parseHash32(ht, s);
|
||||
else
|
||||
throw Error(format("hash `%1%' has wrong length for hash type `%2%'")
|
||||
throw Error(format("hash ‘%1%’ has wrong length for hash type ‘%2%’")
|
||||
% s % printHashType(ht));
|
||||
return hash;
|
||||
}
|
||||
|
@ -290,13 +290,13 @@ Hash hashFile(HashType ht, const Path & path)
|
|||
start(ht, ctx);
|
||||
|
||||
AutoCloseFD fd = open(path.c_str(), O_RDONLY);
|
||||
if (fd == -1) throw SysError(format("opening file `%1%'") % path);
|
||||
if (fd == -1) throw SysError(format("opening file ‘%1%’") % path);
|
||||
|
||||
unsigned char buf[8192];
|
||||
ssize_t n;
|
||||
while ((n = read(fd, buf, sizeof(buf)))) {
|
||||
checkInterrupt();
|
||||
if (n == -1) throw SysError(format("reading file `%1%'") % path);
|
||||
if (n == -1) throw SysError(format("reading file ‘%1%’") % path);
|
||||
update(ht, ctx, buf, n);
|
||||
}
|
||||
|
||||
|
|
|
@ -84,7 +84,7 @@ Path canonPath(const Path & path, bool resolveSymlinks)
|
|||
string s;
|
||||
|
||||
if (path[0] != '/')
|
||||
throw Error(format("not an absolute path: `%1%'") % path);
|
||||
throw Error(format("not an absolute path: ‘%1%’") % path);
|
||||
|
||||
string::const_iterator i = path.begin(), end = path.end();
|
||||
string temp;
|
||||
|
@ -120,7 +120,7 @@ Path canonPath(const Path & path, bool resolveSymlinks)
|
|||
the symlink target might contain new symlinks). */
|
||||
if (resolveSymlinks && isLink(s)) {
|
||||
if (++followCount >= maxFollow)
|
||||
throw Error(format("infinite symlink recursion in path `%1%'") % path);
|
||||
throw Error(format("infinite symlink recursion in path ‘%1%’") % path);
|
||||
temp = absPath(readLink(s), dirOf(s))
|
||||
+ string(i, end);
|
||||
i = temp.begin(); /* restart */
|
||||
|
@ -139,7 +139,7 @@ Path dirOf(const Path & path)
|
|||
{
|
||||
Path::size_type pos = path.rfind('/');
|
||||
if (pos == string::npos)
|
||||
throw Error(format("invalid file name `%1%'") % path);
|
||||
throw Error(format("invalid file name ‘%1%’") % path);
|
||||
return pos == 0 ? "/" : Path(path, 0, pos);
|
||||
}
|
||||
|
||||
|
@ -148,7 +148,7 @@ string baseNameOf(const Path & path)
|
|||
{
|
||||
Path::size_type pos = path.rfind('/');
|
||||
if (pos == string::npos)
|
||||
throw Error(format("invalid file name `%1%'") % path);
|
||||
throw Error(format("invalid file name ‘%1%’") % path);
|
||||
return string(path, pos + 1);
|
||||
}
|
||||
|
||||
|
@ -166,7 +166,7 @@ struct stat lstat(const Path & path)
|
|||
{
|
||||
struct stat st;
|
||||
if (lstat(path.c_str(), &st))
|
||||
throw SysError(format("getting status of `%1%'") % path);
|
||||
throw SysError(format("getting status of ‘%1%’") % path);
|
||||
return st;
|
||||
}
|
||||
|
||||
|
@ -188,10 +188,10 @@ Path readLink(const Path & path)
|
|||
checkInterrupt();
|
||||
struct stat st = lstat(path);
|
||||
if (!S_ISLNK(st.st_mode))
|
||||
throw Error(format("`%1%' is not a symlink") % path);
|
||||
throw Error(format("‘%1%’ is not a symlink") % path);
|
||||
char buf[st.st_size];
|
||||
if (readlink(path.c_str(), buf, st.st_size) != st.st_size)
|
||||
throw SysError(format("reading symbolic link `%1%'") % path);
|
||||
throw SysError(format("reading symbolic link ‘%1%’") % path);
|
||||
return string(buf, st.st_size);
|
||||
}
|
||||
|
||||
|
@ -209,7 +209,7 @@ DirEntries readDirectory(const Path & path)
|
|||
entries.reserve(64);
|
||||
|
||||
AutoCloseDir dir = opendir(path.c_str());
|
||||
if (!dir) throw SysError(format("opening directory `%1%'") % path);
|
||||
if (!dir) throw SysError(format("opening directory ‘%1%’") % path);
|
||||
|
||||
struct dirent * dirent;
|
||||
while (errno = 0, dirent = readdir(dir)) { /* sic */
|
||||
|
@ -218,7 +218,7 @@ DirEntries readDirectory(const Path & path)
|
|||
if (name == "." || name == "..") continue;
|
||||
entries.emplace_back(name, dirent->d_ino, dirent->d_type);
|
||||
}
|
||||
if (errno) throw SysError(format("reading directory `%1%'") % path);
|
||||
if (errno) throw SysError(format("reading directory ‘%1%’") % path);
|
||||
|
||||
return entries;
|
||||
}
|
||||
|
@ -242,7 +242,7 @@ string readFile(const Path & path, bool drain)
|
|||
{
|
||||
AutoCloseFD fd = open(path.c_str(), O_RDONLY);
|
||||
if (fd == -1)
|
||||
throw SysError(format("opening file `%1%'") % path);
|
||||
throw SysError(format("opening file ‘%1%’") % path);
|
||||
return drain ? drainFD(fd) : readFile(fd);
|
||||
}
|
||||
|
||||
|
@ -251,7 +251,7 @@ void writeFile(const Path & path, const string & s)
|
|||
{
|
||||
AutoCloseFD fd = open(path.c_str(), O_WRONLY | O_TRUNC | O_CREAT, 0666);
|
||||
if (fd == -1)
|
||||
throw SysError(format("opening file `%1%'") % path);
|
||||
throw SysError(format("opening file ‘%1%’") % path);
|
||||
writeFull(fd, (unsigned char *) s.data(), s.size());
|
||||
}
|
||||
|
||||
|
@ -298,7 +298,7 @@ static void _deletePath(const Path & path, unsigned long long & bytesFreed)
|
|||
/* Make the directory writable. */
|
||||
if (!(st.st_mode & S_IWUSR)) {
|
||||
if (chmod(path.c_str(), st.st_mode | S_IWUSR) == -1)
|
||||
throw SysError(format("making `%1%' writable") % path);
|
||||
throw SysError(format("making ‘%1%’ writable") % path);
|
||||
}
|
||||
|
||||
for (auto & i : readDirectory(path))
|
||||
|
@ -306,7 +306,7 @@ static void _deletePath(const Path & path, unsigned long long & bytesFreed)
|
|||
}
|
||||
|
||||
if (remove(path.c_str()) == -1)
|
||||
throw SysError(format("cannot unlink `%1%'") % path);
|
||||
throw SysError(format("cannot unlink ‘%1%’") % path);
|
||||
}
|
||||
|
||||
|
||||
|
@ -320,7 +320,7 @@ void deletePath(const Path & path)
|
|||
void deletePath(const Path & path, unsigned long long & bytesFreed)
|
||||
{
|
||||
startNest(nest, lvlDebug,
|
||||
format("recursively deleting path `%1%'") % path);
|
||||
format("recursively deleting path ‘%1%’") % path);
|
||||
bytesFreed = 0;
|
||||
_deletePath(path, bytesFreed);
|
||||
}
|
||||
|
@ -357,11 +357,11 @@ Path createTempDir(const Path & tmpRoot, const Path & prefix,
|
|||
"wheel", then "tar" will fail to unpack archives that
|
||||
have the setgid bit set on directories. */
|
||||
if (chown(tmpDir.c_str(), (uid_t) -1, getegid()) != 0)
|
||||
throw SysError(format("setting group of directory `%1%'") % tmpDir);
|
||||
throw SysError(format("setting group of directory ‘%1%’") % tmpDir);
|
||||
return tmpDir;
|
||||
}
|
||||
if (errno != EEXIST)
|
||||
throw SysError(format("creating directory `%1%'") % tmpDir);
|
||||
throw SysError(format("creating directory ‘%1%’") % tmpDir);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -375,12 +375,12 @@ Paths createDirs(const Path & path)
|
|||
if (lstat(path.c_str(), &st) == -1) {
|
||||
created = createDirs(dirOf(path));
|
||||
if (mkdir(path.c_str(), 0777) == -1 && errno != EEXIST)
|
||||
throw SysError(format("creating directory `%1%'") % path);
|
||||
throw SysError(format("creating directory ‘%1%’") % path);
|
||||
st = lstat(path);
|
||||
created.push_back(path);
|
||||
}
|
||||
|
||||
if (!S_ISDIR(st.st_mode)) throw Error(format("`%1%' is not a directory") % path);
|
||||
if (!S_ISDIR(st.st_mode)) throw Error(format("‘%1%’ is not a directory") % path);
|
||||
|
||||
return created;
|
||||
}
|
||||
|
@ -389,7 +389,7 @@ Paths createDirs(const Path & path)
|
|||
void createSymlink(const Path & target, const Path & link)
|
||||
{
|
||||
if (symlink(target.c_str(), link.c_str()))
|
||||
throw SysError(format("creating symlink from `%1%' to `%2%'") % link % target);
|
||||
throw SysError(format("creating symlink from ‘%1%’ to ‘%2%’") % link % target);
|
||||
}
|
||||
|
||||
|
||||
|
@ -560,7 +560,7 @@ AutoDelete::~AutoDelete()
|
|||
deletePath(path);
|
||||
else {
|
||||
if (remove(path.c_str()) == -1)
|
||||
throw SysError(format("cannot unlink `%1%'") % path);
|
||||
throw SysError(format("cannot unlink ‘%1%’") % path);
|
||||
}
|
||||
}
|
||||
} catch (...) {
|
||||
|
@ -801,7 +801,7 @@ void Pid::setKillSignal(int signal)
|
|||
|
||||
void killUser(uid_t uid)
|
||||
{
|
||||
debug(format("killing all processes running under uid `%1%'") % uid);
|
||||
debug(format("killing all processes running under uid ‘%1%’") % uid);
|
||||
|
||||
assert(uid != 0); /* just to be safe... */
|
||||
|
||||
|
@ -827,7 +827,7 @@ void killUser(uid_t uid)
|
|||
#endif
|
||||
if (errno == ESRCH) break; /* no more processes */
|
||||
if (errno != EINTR)
|
||||
throw SysError(format("cannot kill processes for uid `%1%'") % uid);
|
||||
throw SysError(format("cannot kill processes for uid ‘%1%’") % uid);
|
||||
}
|
||||
|
||||
_exit(0);
|
||||
|
@ -835,7 +835,7 @@ void killUser(uid_t uid)
|
|||
|
||||
int status = pid.wait(true);
|
||||
if (status != 0)
|
||||
throw Error(format("cannot kill processes for uid `%1%': %2%") % uid % statusToString(status));
|
||||
throw Error(format("cannot kill processes for uid ‘%1%’: %2%") % uid % statusToString(status));
|
||||
|
||||
/* !!! We should really do some check to make sure that there are
|
||||
no processes left running under `uid', but there is no portable
|
||||
|
@ -893,7 +893,7 @@ string runProgram(Path program, bool searchPath, const Strings & args)
|
|||
else
|
||||
execv(program.c_str(), (char * *) &cargs[0]);
|
||||
|
||||
throw SysError(format("executing `%1%'") % program);
|
||||
throw SysError(format("executing ‘%1%’") % program);
|
||||
});
|
||||
|
||||
pipe.writeSide.close();
|
||||
|
@ -903,7 +903,7 @@ string runProgram(Path program, bool searchPath, const Strings & args)
|
|||
/* Wait for the child to finish. */
|
||||
int status = pid.wait(true);
|
||||
if (!statusOk(status))
|
||||
throw ExecError(format("program `%1%' %2%")
|
||||
throw ExecError(format("program ‘%1%’ %2%")
|
||||
% program % statusToString(status));
|
||||
|
||||
return result;
|
||||
|
@ -1046,7 +1046,7 @@ void expect(std::istream & str, const string & s)
|
|||
char s2[s.size()];
|
||||
str.read(s2, s.size());
|
||||
if (string(s2, s.size()) != s)
|
||||
throw FormatError(format("expected string `%1%'") % s);
|
||||
throw FormatError(format("expected string ‘%1%’") % s);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue