forked from lix-project/lix
Move createTempFile to libutil
This commit is contained in:
parent
dea18ff999
commit
8ec77614f6
|
@ -461,6 +461,17 @@ Path createTempDir(const Path & tmpRoot, const Path & prefix,
|
|||
}
|
||||
|
||||
|
||||
std::pair<AutoCloseFD, Path> createTempFile(const Path & prefix)
|
||||
{
|
||||
Path tmpl(getEnv("TMPDIR", "/tmp") + "/" + prefix + ".XXXXXX");
|
||||
// Strictly speaking, this is UB, but who cares...
|
||||
AutoCloseFD fd(mkstemp((char *) tmpl.c_str()));
|
||||
if (!fd)
|
||||
throw SysError("creating temporary file '%s'", tmpl);
|
||||
return {std::move(fd), tmpl};
|
||||
}
|
||||
|
||||
|
||||
static Lazy<Path> getHome2([]() {
|
||||
Path homeDir = getEnv("HOME");
|
||||
if (homeDir.empty()) {
|
||||
|
|
|
@ -118,10 +118,6 @@ void deletePath(const Path & path);
|
|||
|
||||
void deletePath(const Path & path, unsigned long long & bytesFreed);
|
||||
|
||||
/* Create a temporary directory. */
|
||||
Path createTempDir(const Path & tmpRoot = "", const Path & prefix = "nix",
|
||||
bool includePid = true, bool useGlobalCounter = true, mode_t mode = 0755);
|
||||
|
||||
/* Return $HOME or the user's home directory from /etc/passwd. */
|
||||
Path getHome();
|
||||
|
||||
|
@ -199,6 +195,14 @@ public:
|
|||
};
|
||||
|
||||
|
||||
/* Create a temporary directory. */
|
||||
Path createTempDir(const Path & tmpRoot = "", const Path & prefix = "nix",
|
||||
bool includePid = true, bool useGlobalCounter = true, mode_t mode = 0755);
|
||||
|
||||
/* Create a temporary file, returning a file handle and its path. */
|
||||
std::pair<AutoCloseFD, Path> createTempFile(const Path & prefix = "nix");
|
||||
|
||||
|
||||
class Pipe
|
||||
{
|
||||
public:
|
||||
|
|
|
@ -166,16 +166,6 @@ struct Common : InstallableCommand
|
|||
}
|
||||
};
|
||||
|
||||
std::pair<AutoCloseFD, Path> createTempFile(const Path & prefix = "nix")
|
||||
{
|
||||
Path tmpl(getEnv("TMPDIR", "/tmp") + "/" + prefix + ".XXXXXX");
|
||||
// Strictly speaking, this is UB, but who cares...
|
||||
AutoCloseFD fd(mkstemp((char *) tmpl.c_str()));
|
||||
if (!fd)
|
||||
throw SysError("creating temporary file '%s'", tmpl);
|
||||
return {std::move(fd), tmpl};
|
||||
}
|
||||
|
||||
struct CmdDevShell : Common
|
||||
{
|
||||
|
||||
|
|
Loading…
Reference in a new issue