#include "frmMain.h"
#include "bitmaps.h"
#include "version.h"
+#include "convert.h"
#include "actmgr/frmActivityMgr.h"
#include "search/frmSearch.h"
#include "common/timers.h"
wxCMD_LINE_VAL_NONE, wxCMD_LINE_OPTION_HELP },
{ wxCMD_LINE_OPTION, wxT_2("e"), wxT_2("edit"), wxTRANSLATE("Edit a vCard 4.0 formatted contact"),
wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL },
+ { wxCMD_LINE_SWITCH, wxT_2("c"), wxT_2("convert"), wxTRANSLATE("Convert a contact file into another format."),
+ wxCMD_LINE_VAL_NONE, wxCMD_LINE_PARAM_OPTIONAL },
+ { wxCMD_LINE_OPTION, wxT_2("ifmt"), NULL, wxTRANSLATE("Input format to convert from. (used with -c)"),
+ wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL },
+ { wxCMD_LINE_OPTION, wxT_2("ofmt"), NULL, wxTRANSLATE("Output format to convert to. (used with -c)"),
+ wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL },
+ { wxCMD_LINE_OPTION, wxT_2("ifile"), NULL, wxTRANSLATE("Input filename to read from. (used with -c)"),
+ wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL },
+ { wxCMD_LINE_OPTION, wxT_2("ofile"), NULL, wxTRANSLATE("Output filename to write to (don't use to pipe to console). (used with -c)"),
+ wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL },
{ wxCMD_LINE_SWITCH, wxT_2("s"), wxT_2("search"), wxTRANSLATE("Display the search window instead of starting normally"),
wxCMD_LINE_VAL_NONE, wxCMD_LINE_PARAM_OPTIONAL },
{ wxCMD_LINE_SWITCH, wxT_2("v"), wxT_2("version"), wxTRANSLATE("Displays version number"),
};
wxString wxSContactFilename;
+ wxString wxSContactOutputFilename;
+ wxString wxSContactFormat;
+ wxString wxSContactOutputFormat;
wxCmdLineParser XABArgs (g_cmdLineDesc, argc, argv);
XABArgs.Parse();
// Print out the version number.
wxPuts(XSDAB_VERSION);
- exit(0);
+ exit(EXIT_SUCCESS);
}
wxInitAllImageHandlers();
-
+
+ if (XABArgs.Found(wxT("c"))){
+
+ // Preform a conversion.
+
+ wxString InputFormat;
+ wxString ExportFormat;
+ wxString InputFilename;
+ wxString OutputFilename;
+
+ // Get the input format. Return error if blank
+ // or invalid.
+
+ if (XABArgs.Found(wxT("ifmt"))){
+ XABArgs.Found(wxT("ifmt"), &InputFormat);
+ }
+
+ // Get the export format. Return error if blank
+ // or invalid.
+
+ if (XABArgs.Found(wxT("ofmt"))){
+ XABArgs.Found(wxT("ofmt"), &ExportFormat);
+ }
+
+ // Get the input filename.
+
+ if (XABArgs.Found(wxT("ifile"))){
+ XABArgs.Found(wxT("ifile"), &InputFilename);
+ }
+
+ // Get the output filename (if any).
+
+ if (XABArgs.Found(wxT("ofile"))){
+ XABArgs.Found(wxT("ofile"), &OutputFilename);
+ }
+
+ if (argc >= 7){
+ wxPuts("Too many arguments given.");
+ exit(EXIT_FAILURE);
+ }
+
+ // Run the conversion process.
+
+ ConvertResult ConvertRunStatus = ConvertContact(InputFormat, ExportFormat, InputFilename, OutputFilename);
+
+ switch (ConvertRunStatus){
+ case CONVERTRESULT_UNITTESTFAIL:
+ wxPuts("An internal unit testing failure has occured.");
+ exit(EXIT_SUCCESS);
+ break;
+ case CONVERTRESULT_OK:
+ break;
+ case CONVERTRESULT_FORMATSSAME:
+ wxPuts("Both input and output formats are the same.");
+ exit(EXIT_FAILURE);
+ break;
+ case CONVERTRESULT_INVALIDINPUTFORMAT:
+ wxPuts("Invalid input format given.");
+ exit(EXIT_FAILURE);
+ break;
+ case CONVERTRESULT_INVALIDOUTPUTFORMAT:
+ wxPuts("Invalid output format given.");
+ exit(EXIT_FAILURE);
+ break;
+ case CONVERTRESULT_INPUTFILEMISSING:
+ wxPuts("Input file with the filename given does not exist.");
+ exit(EXIT_FAILURE);
+ break;
+ case CONVERTRESULT_INPUTFILEEMPTY:
+ wxPuts("No input filename given.");
+ exit(EXIT_FAILURE);
+ break;
+ case CONVERTRESULT_INPUTFILEINVALIDFORMAT:
+ wxPuts("Input file is in an invalid format.");
+ exit(EXIT_FAILURE);
+ break;
+ case CONVERTRESULT_INPUTFILEERROR:
+ wxPuts("An error occured whilst trying to open the input file location.");
+ exit(EXIT_FAILURE);
+ break;
+ case CONVERTRESULT_OUTPUTFILEERROR:
+ wxPuts("An error occured whilst trying to open the output file location.");
+ exit(EXIT_FAILURE);
+ break;
+ }
+
+ exit(EXIT_SUCCESS);
+
+ }
+
if (XABArgs.Found(wxT("s"))){
// Open up the search window.
return true;
}
+
+ if (!XABArgs.Found(wxT(""))){
+
+ return false;
+
+ }
// Setup default settings and accounts if they don't exist.
return true;
-}
-
+}
\ No newline at end of file