Skip to content

Commit a395eef

Browse files
committed
mkdir -p before creating config file
1 parent 9eb8254 commit a395eef

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

src/main.cpp

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include <QTranslator>
77
#include <QFileInfo>
88

9+
#include "log.h"
910
#include "settings.h"
1011

1112
extern "C" {
@@ -44,13 +45,21 @@ static void initLocale(QTranslator *qtTranslator, QTranslator *translator)
4445
app->installTranslator(translator);
4546
}
4647

47-
void initConfig(std::string &config_file)
48+
void initConfig(std::string &configFile)
4849
{
49-
bool success = xml_init(config_file.data());
50+
// mkdir -p
51+
if (!std::filesystem::exists(configFile)) {
52+
size_t filenamePosition = configFile.find_last_of("/");
53+
std::string dirname = configFile.substr(0, filenamePosition);
54+
info("Creating directory '{}'", dirname);
55+
std::filesystem::create_directories(dirname);
56+
}
57+
58+
bool success = xml_init(configFile.data());
5059

5160
if (!success) {
5261
QMessageBox msgBox;
53-
msgBox.setText(QObject::tr("Error loading ") + QString(config_file.data()));
62+
msgBox.setText(QObject::tr("Error loading ") + QString(configFile.data()));
5463
msgBox.setInformativeText(
5564
QObject::tr("Run labwc-tweaks from a terminal to view error messages"));
5665
msgBox.exec();

src/xml.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ create_basic_rcxml(const char *filename)
133133
{
134134
FILE *file = fopen(filename, "w");
135135
if (!file) {
136-
fprintf(stderr, "warn: fopen(%s) failed\n", filename);
136+
fprintf(stderr, "warn: cannot create file '%s'\n", filename);
137137
return;
138138
}
139139
if (!fwrite(rcxml_template, sizeof(rcxml_template)-1, 1, file)) {

0 commit comments

Comments
 (0)