1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-21 22:32:41 +01:00

In Arcanist, when trying to write to a file configuration source, create missing directories

Summary: The ".git/arc" directory may need to be created when writing to working copy configuration.

Test Plan:
  - Tried to store an answer to a prompt in a new working copy.
  - Before: error that ".git/arc" does not exist.
  - After: prompt saved to working copy configuration.

Differential Revision: https://secure.phabricator.com/D21588
This commit is contained in:
epriestley 2021-03-03 13:04:44 -08:00
parent 953d742a1a
commit 2d6452acb5

View file

@ -39,7 +39,20 @@ abstract class ArcanistFilesystemConfigurationSource
$content = id(new PhutilJSON())
->encodeFormatted($values);
Filesystem::writeFile($this->path, $content);
$path = $this->path;
// If the containing directory does not exist yet, create it.
//
// This is expected when (for example) you first write to project
// configuration in a Git working copy: the ".git/arc" directory will
// not exist yet.
$dir = dirname($path);
if (!Filesystem::pathExists($dir)) {
Filesystem::createDirectory($dir, 0755, $recursive = true);
}
Filesystem::writeFile($path, $content);
}
}