QCommandLineOption c_opt({"c","csvfile"}, "The CSV file with desired fields.", "csvfile");
QCommandLineOption i_opt({"i","import"}, "Import the CSV file into tablename");
QCommandLineOption s_opt({"s","sync"}, "Sync tablename with the CSV file fields.");
QCommandLineOption t_opt({"t","table"}, "The target table name.", "tablename");
QCommandLineParser parser;
parser.addHelpOption();
parser.addVersionOption();
parser.addOption(c_opt);
parser.addOption(i_opt);
parser.addOption(s_opt);
parser.addOption(t_opt);
parser.addPositionalArgument("db", "The database file to process.");
QString csv_filename
= parser.
value("csvfile");
QString table_name
= parser.
value("table");
if (!parser.isSet(i_opt) && !parser.isSet(s_opt))
{
qDebug("\nOne of import or sync options is required.\n");
parser.showHelp();
}
if (parser.isSet(i_opt) && parser.isSet(s_opt))
{
qDebug("\nOnly one of import or sync options is allowed.\n");
parser.showHelp();
}
if (!parser.isSet(c_opt) || csv_filename.isEmpty())
{
qDebug("\nThe CSV file to import is a required option.\n");
parser.showHelp();
}
if (!parser.isSet(t_opt) || table_name.isEmpty())
{
qDebug("\nThe table name is a required option.\n");
parser.showHelp(1);
}
if (args.count() == 1)
{
db_filename = args.at(0);
}
if (csv_filename.isEmpty() || db_filename.isEmpty())
{
qDebug("\nThe CSV file name and database name are required.\n");
parser.showHelp(1);
}
QCommandLineOption c_opt({"c","csvfile"}, "The CSV file with desired fields.", "csvfile");
QCommandLineOption i_opt({"i","import"}, "Import the CSV file into tablename");
QCommandLineOption s_opt({"s","sync"}, "Sync tablename with the CSV file fields.");
QCommandLineOption t_opt({"t","table"}, "The target table name.", "tablename");
QCommandLineParser parser;
parser.addHelpOption();
parser.addVersionOption();
parser.addOption(c_opt);
parser.addOption(i_opt);
parser.addOption(s_opt);
parser.addOption(t_opt);
parser.addPositionalArgument("db", "The database file to process.");
parser.process(QCoreApplication::arguments());
QStringList args = parser.positionalArguments();
QString csv_filename = parser.value("csvfile");
QString table_name = parser.value("table");
if (!parser.isSet(i_opt) && !parser.isSet(s_opt))
{
qDebug("\nOne of import or sync options is required.\n");
parser.showHelp();
}
if (parser.isSet(i_opt) && parser.isSet(s_opt))
{
qDebug("\nOnly one of import or sync options is allowed.\n");
parser.showHelp();
}
if (!parser.isSet(c_opt) || csv_filename.isEmpty())
{
qDebug("\nThe CSV file to import is a required option.\n");
parser.showHelp();
}
if (!parser.isSet(t_opt) || table_name.isEmpty())
{
qDebug("\nThe table name is a required option.\n");
parser.showHelp(1);
}
QString db_filename;
if (args.count() == 1)
{
db_filename = args.at(0);
}
if (csv_filename.isEmpty() || db_filename.isEmpty())
{
qDebug("\nThe CSV file name and database name are required.\n");
parser.showHelp(1);
}
To copy to clipboard, switch view to plain text mode
Bookmarks