diff -r 000000000000 -r ba25891c3a9e secureswitools/swisistools/source/interpretsis/main.cpp --- /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 +#include + +// 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; + }