--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/interpretsis/main.cpp Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,130 @@
+/*
+* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Contains the entry point for the interpretsis program
+*
+*/
+
+
+#pragma warning (disable: 4786)
+
+// System include
+#include <iostream>
+#include <fstream>
+
+// User include
+#include "commandparser.h"
+#include "interpretsis.h"
+#include "logger.h"
+#include "../common/exception.h"
+
+int main(int argc, const char* argv[])
+ {
+ bool pauseWhenDone = false;
+
+ int result= SUCCESS;
+ std::wofstream* logFile = NULL;
+ try
+ {
+ CCommandParser options;
+ CInterpretSIS::TParamPtr paramList(options.ParseOptions(argc, argv));
+
+ CParameterList* paramPtr = paramList.get();
+ if(NULL == paramPtr)
+ {
+ return 0;
+ }
+
+ if (options.LogFile().size() > 0)
+ {
+ logFile = new std::wofstream(Ucs2ToUtf8(options.LogFile()).c_str(), std::ios::app);
+ Logger::SetStream(*logFile);
+ }
+ else
+ {
+ Logger::SetStream(std::wcout);
+ }
+
+ Logger::SetLevel( options.WarningLevel() );
+
+ CInterpretSIS interpretSis(paramList);
+
+ result = interpretSis.Install();
+
+ // Uninstall the sis files
+ interpretSis.Uninstall();
+ }
+ catch( CCommandParser::CmdLineException err )
+ {
+ CCommandParser::DisplayError(err);
+ result = CMDLINE_ERROR;
+ }
+ catch(CParameterList::TParamException err)
+ {
+ CParameterList::DisplayError(err);
+ CCommandParser::DisplayUsage();
+ result = CMDLINE_ERROR;
+ }
+ catch(const ConfigManagerException& e)
+ {
+ LERROR(L"Config Manager Error - ");
+ e.Display();
+ result = CONFIG_ERROR;
+ }
+ catch(const RomManagerException& e)
+ {
+ LERROR(L"ROM Manager Error - ");
+ e.Display();
+ result = ROM_MANAGER;
+ }
+ catch (InterpretSisError& e)
+ {
+ LERROR(L"\t" << Utf8ToUcs2(e.what()));
+ result = e.GetErrorCode();
+ }
+ catch (CSISException e)
+ {
+ LERROR(L"FileContents Error - ");
+ std::cout << e.what() << std::endl;
+ result = INVALID_SIS;
+ }
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+ catch (CException& e)
+ {
+ LERROR(L"DB Manager Error - ");
+ std::cout << "DB Manager Error - " << e.GetMessageA() << " Code: " << e.GetCode() << std::endl;
+ result = DB_EXCEPTION;
+ }
+#endif
+ catch (std::exception &err)
+ {
+ std::wstring emessage = Utf8ToUcs2( err.what() );
+ LERROR( L"Error: " << emessage);
+ result = STD_EXCEPTION;
+ }
+ catch (...)
+ {
+ result = UNKNOWN_EXCEPTION;
+ LERROR(L"Unknown Error" << std::endl);
+ }
+
+ if (NULL != logFile)
+ {
+ bool val = logFile->is_open();
+ logFile->close();
+ delete logFile;
+ }
+
+ return result;
+ }