Change default output behavior a little bit

This commit is contained in:
Michael Zanetti 2019-07-11 00:26:20 +02:00
parent 0ba3f6ca39
commit 634e14aeeb
2 changed files with 32 additions and 24 deletions

View File

@ -34,8 +34,8 @@ int main(int argc, char *argv[])
QCommandLineParser parser;
parser.setApplicationDescription("The nymea plugin info compiler. Compiles a plugininfo.json into a plugininfo.h/plugininfo-extern.h.");
parser.addHelpOption();
parser.addOption({{"o", "output"}, "Write generated output header to <file>.", "file", "-"});
parser.addOption({{"e", "extern"}, "Write generated output header (extern definitions) to <file>.", "file", "-"});
parser.addOption({{"o", "output"}, "Write generated output header to <file>.", "file"});
parser.addOption({{"e", "extern"}, "Write generated output header (extern definitions) to <file>.", "file"});
parser.addPositionalArgument("input", "The input json file");
parser.process(a);

View File

@ -60,29 +60,33 @@ int PluginInfoCompiler::compile(const QString &inputFile, const QString &outputF
// OK. Json parsed fine. Let's open files for writing
if (outputFile == "-") {
if (!m_outputFile.open(stdout, QFile::WriteOnly | QFile::Text)) {
qWarning() << "Error opening stdout for writing. Aborting.";
return 1;
}
} else {
m_outputFile.setFileName(outputFile);
if (!m_outputFile.open(QFile::WriteOnly | QFile::Text)) {
qWarning() << "Error opening output file for writing. Aborting.";
return 1;
if (!outputFile.isEmpty()) {
if (outputFile == "-") {
if (!m_outputFile.open(stdout, QFile::WriteOnly | QFile::Text)) {
qWarning() << "Error opening stdout for writing. Aborting.";
return 1;
}
} else {
m_outputFile.setFileName(outputFile);
if (!m_outputFile.open(QFile::WriteOnly | QFile::Text)) {
qWarning() << "Error opening output file for writing. Aborting.";
return 1;
}
}
}
if (outputFileExtern == "-") {
if (!m_outputFileExtern.open(stdout, QFile::WriteOnly | QFile::Text)) {
qWarning() << "Error opening stdout for writing. Aborting.";
return 1;
}
} else {
m_outputFileExtern.setFileName(outputFileExtern);
if (!m_outputFileExtern.open(QFile::WriteOnly | QFile::Text)) {
qWarning() << "Error opening output file for writing. Aborting.";
return 1;
if (!outputFileExtern.isEmpty()) {
if (outputFileExtern == "-") {
if (!m_outputFileExtern.open(stdout, QFile::WriteOnly | QFile::Text)) {
qWarning() << "Error opening stdout for writing. Aborting.";
return 1;
}
} else {
m_outputFileExtern.setFileName(outputFileExtern);
if (!m_outputFileExtern.open(QFile::WriteOnly | QFile::Text)) {
qWarning() << "Error opening output file for writing. Aborting.";
return 1;
}
}
}
@ -278,10 +282,14 @@ void PluginInfoCompiler::writeActionTypes(const ActionTypes &actionTypes, const
void PluginInfoCompiler::write(const QString &line)
{
m_outputFile.write(QString("%1\n").arg(line).toUtf8());
if (m_outputFile.isOpen()) {
m_outputFile.write(QString("%1\n").arg(line).toUtf8());
}
}
void PluginInfoCompiler::writeExtern(const QString &line)
{
m_outputFileExtern.write(QString("%1\n").arg(line).toUtf8());
if (m_outputFileExtern.isOpen()) {
m_outputFileExtern.write(QString("%1\n").arg(line).toUtf8());
}
}