diff --git a/src/libstore/builtins/unpack-channel.cc b/src/libstore/builtins/unpack-channel.cc index a6369ee1c..43fbb62cd 100644 --- a/src/libstore/builtins/unpack-channel.cc +++ b/src/libstore/builtins/unpack-channel.cc @@ -23,11 +23,7 @@ void builtinUnpackChannel( throw Error("channelName is not allowed to contain filesystem separators, got %1%", channelName); } - try { - fs::create_directories(out); - } catch (fs::filesystem_error &) { - throw SysError("creating directory '%1%'", out.string()); - } + createDirs(out); unpackTarfile(src, out); diff --git a/src/libutil/tarfile.cc b/src/libutil/tarfile.cc index e412930bb..9e54c9be2 100644 --- a/src/libutil/tarfile.cc +++ b/src/libutil/tarfile.cc @@ -166,7 +166,7 @@ void unpackTarfile(Source & source, const fs::path & destDir) { auto archive = TarArchive(source); - fs::create_directories(destDir); + createDirs(destDir); extract_archive(archive, destDir); } @@ -174,7 +174,7 @@ void unpackTarfile(const fs::path & tarFile, const fs::path & destDir) { auto archive = TarArchive(tarFile); - fs::create_directories(destDir); + createDirs(destDir); extract_archive(archive, destDir); } diff --git a/src/nix/flake.cc b/src/nix/flake.cc index 9259743f4..c5e7505c8 100644 --- a/src/nix/flake.cc +++ b/src/nix/flake.cc @@ -903,7 +903,7 @@ struct CmdFlakeInitCommon : virtual Args, EvalCommand std::function copyDir; copyDir = [&](const SourcePath & from, const fs::path & to) { - fs::create_directories(to); + createDirs(to); for (auto & [name, entry] : from.readDirectory()) { checkInterrupt();