When starting up try creating directories recursively
Previously we had a check to see if cache and data directories exist and
another check to try to make them if they do not. However the second
check was never reached if we don't have the directories in question.
Furthermore for cache directories on Linux people who never started a
desktop environment we need to recurisively create the XDG directory as
well as the godot specific directory.
This fixes #17963
(cherry picked from commit 321ac5ae13
)
This commit is contained in:
parent
5dd8f775f9
commit
96ed1801aa
|
@ -740,7 +740,7 @@ void EditorSettings::create() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dir->change_dir(data_dir) != OK) {
|
if (dir->change_dir(data_dir) != OK) {
|
||||||
dir->make_dir(data_dir);
|
dir->make_dir_recursive(data_dir);
|
||||||
if (dir->change_dir(data_dir) != OK) {
|
if (dir->change_dir(data_dir) != OK) {
|
||||||
ERR_PRINT("Cannot create data directory!");
|
ERR_PRINT("Cannot create data directory!");
|
||||||
memdelete(dir);
|
memdelete(dir);
|
||||||
|
@ -756,14 +756,8 @@ void EditorSettings::create() {
|
||||||
|
|
||||||
// Validate/create cache dir
|
// Validate/create cache dir
|
||||||
|
|
||||||
if (dir->change_dir(cache_path) != OK) {
|
|
||||||
ERR_PRINT("Cannot find path for cache directory!");
|
|
||||||
memdelete(dir);
|
|
||||||
goto fail;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dir->change_dir(cache_dir) != OK) {
|
if (dir->change_dir(cache_dir) != OK) {
|
||||||
dir->make_dir(cache_dir);
|
dir->make_dir_recursive(cache_dir);
|
||||||
if (dir->change_dir(cache_dir) != OK) {
|
if (dir->change_dir(cache_dir) != OK) {
|
||||||
ERR_PRINT("Cannot create cache directory!");
|
ERR_PRINT("Cannot create cache directory!");
|
||||||
memdelete(dir);
|
memdelete(dir);
|
||||||
|
@ -773,14 +767,8 @@ void EditorSettings::create() {
|
||||||
|
|
||||||
// Validate/create config dir and subdirectories
|
// Validate/create config dir and subdirectories
|
||||||
|
|
||||||
if (dir->change_dir(config_path) != OK) {
|
|
||||||
ERR_PRINT("Cannot find path for config directory!");
|
|
||||||
memdelete(dir);
|
|
||||||
goto fail;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dir->change_dir(config_dir) != OK) {
|
if (dir->change_dir(config_dir) != OK) {
|
||||||
dir->make_dir(config_dir);
|
dir->make_dir_recursive(config_dir);
|
||||||
if (dir->change_dir(config_dir) != OK) {
|
if (dir->change_dir(config_dir) != OK) {
|
||||||
ERR_PRINT("Cannot create config directory!");
|
ERR_PRINT("Cannot create config directory!");
|
||||||
memdelete(dir);
|
memdelete(dir);
|
||||||
|
|
Loading…
Reference in New Issue