diff --git a/lix/libutil/file-system.cc b/lix/libutil/file-system.cc index f62a54b5d..806190316 100644 --- a/lix/libutil/file-system.cc +++ b/lix/libutil/file-system.cc @@ -689,6 +689,11 @@ Path makeTempPath(const Path & root, const Path & suffix) return fmt("%1%%2%-%3%-%4%", root, suffix, getpid(), counter.fetch_add(1, std::memory_order_relaxed)); } +Path makeTempSiblingPath(const Path & path) +{ + return makeTempPath(fs::path(path).remove_filename()); +} + void createSymlink(const Path & target, const Path & link) { if (symlink(target.c_str(), link.c_str())) diff --git a/lix/libutil/file-system.hh b/lix/libutil/file-system.hh index a1295c613..16f4d0518 100644 --- a/lix/libutil/file-system.hh +++ b/lix/libutil/file-system.hh @@ -312,6 +312,11 @@ Path createTempSubdir(const Path & parent, const Path & prefix = "nix", */ Path makeTempPath(const Path & root, const Path & suffix = ".tmp"); +/** + * Return temporary path in the same directory as a given path. + */ +Path makeTempSiblingPath(const Path & path); + /** * Used in various places. */