diff options
Diffstat (limited to 'client/pracro.cc')
-rw-r--r-- | client/pracro.cc | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/client/pracro.cc b/client/pracro.cc new file mode 100644 index 0000000..6aca830 --- /dev/null +++ b/client/pracro.cc @@ -0,0 +1,141 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/*************************************************************************** + * main.cc + * + * Fri Jul 13 12:38:45 CEST 2007 + * Copyright 2007 Bent Bisballe Nyeng and Lars Bisballe Jensen + * deva@aasimon.org and elsenator@gmail.com + ****************************************************************************/ + +/* + * This file is part of Pracro. + * + * Pracro is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Pracro is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Pracro; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +#include <QApplication> +#include <QObject> +#include <QEvent> +#include <QStringList> +#include <QSettings> +#include "macro.h" + +#define VERSION "1.0" + +#define CPR_DEFAULT "0000000000" +#define MACRO_DEFAULT "example2" +#define COURSE_DEFAULT "example2" +#define USER_DEFAULT "testuser" +#define CONFIG_DEFAULT "pracro.ini" + +QString cpr = CPR_DEFAULT; +QString user = USER_DEFAULT; +QString config = CONFIG_DEFAULT; +QString host; +quint16 port; + +static void print_usage() +{ + printf("Usage: pracro -m MACRO -c CPR -U USER\n"); + printf("Executes the requested Pracro MACRO using supplied CPR and USER.\n"); + printf("\n"); + printf(" -h, --help Displays this help text.\n"); + printf(" -m, --macro MACRO Requests macro MACRO from the Pracro \n" + " Server, defaults to \""MACRO_DEFAULT"\".\n"); + printf(" -c, --course COURSE Requests course COURSE from the Pracro \n" + " Server, defaults to \""COURSE_DEFAULT"\".\n"); + printf(" -C, --cpr CPR Defines the cpr for use with the macro,\n" + " defaults to \""CPR_DEFAULT"\".\n"); + printf(" -C, --config FILE The configfile to use. Default is \""CONFIG_DEFAULT"\"\n"); + printf(" -u, -U, --user USER Defines the requesting user(not the patient),\n" + " defaults to \""USER_DEFAULT"\"\n"); +} + +static void print_version() +{ + printf("Pracro v"VERSION"\n"); +} + +static QString getParam(QStringList &args, QStringList::iterator &arg) +{ + arg++; + if(arg == args.end() || arg->at(0) == '-') { + print_usage(); + exit(1); + } + return *arg; +} + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + QString macro = MACRO_DEFAULT; + QString course = COURSE_DEFAULT; + + QStringList args = app.arguments(); + QStringList::iterator arg = args.begin(); + arg++; // Skip program name... + while(arg != args.end()) { + + if(*arg == "--help" || + *arg == "-h") { + print_usage(); + } + else if(*arg == "--version" || + *arg == "-v") { + print_version(); + } + else if(*arg == "--user" || + *arg == "-U" || + *arg == "-u") { + user = getParam(args,arg); + } + else if(*arg == "--macro" || + *arg == "-m") { + macro = getParam(args, arg); + } + else if(*arg == "--course" || + *arg == "-c") { + course = getParam(args, arg); + } + else if(*arg == "--cpr" || + *arg == "-C") { + cpr = getParam(args, arg); + } + else if(*arg == "--config") { + config = getParam(args, arg); + } + else { + print_version(); + print_usage(); + return 1; + } + + arg++; + } + + QSettings settings(config, QSettings::IniFormat); + + settings.beginGroup("server"); + host = settings.value("host").toString(); + port = settings.value("port").toInt(); + settings.endGroup(); + + new_macro(course, macro); + + //app.setQuitOnLastWindowClosed(false); + return app.exec(); +} |