X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fbackend%2Fbackend.cpp;h=8aec99834287005f88ad399abc23a31be31f3d27;hb=HEAD;hp=36b2b3964a61809d946b435e8247c602472c82a9;hpb=3c846a8ae58eb6387c3828bb39a7ccd88da7d9a0;p=platform%2Fframework%2Fnative%2Finstaller.git diff --git a/src/backend/backend.cpp b/src/backend/backend.cpp index 36b2b39..8aec998 100755 --- a/src/backend/backend.cpp +++ b/src/backend/backend.cpp @@ -33,6 +33,7 @@ #include #include "InstallerManager.h" +#include "HybridInstaller.h" using namespace Tizen::App; using namespace Tizen::App::Package; @@ -48,19 +49,18 @@ int main(int argc, char **argv) { int ret = 0; - const char *pkg_info = null; - char* pkg_path = null; + int errorType = 0; + int reqType = 0; + int emul = 0; + const char* pPkgInfo = null; + const char* pPkgPath = null; const char* pOptional = null; const char* pStoreClientId = null; String path; String optionalData; PackageId packageId; - int errorType = 0; - pkgmgr_installer *pi = null; - int req_type = 0; appcore_set_i18n(null, null); - Osp_Initialize(); String buf; @@ -82,46 +82,91 @@ main(int argc, char **argv) } } - int emul = 0; - #ifdef _OSP_EMUL_ emul = 1; #endif - fprintf(stderr, " ## osp-installer: %s[%s] cmd=[%ls]\n", OSP_INSTALLER_VERSION, emul?"Emulator":"Target", buf.GetPointer()); + fprintf(stderr, " ## osp-installer: %s device=[%s] cmd=[%ls]\n", OSP_INSTALLER_VERSION, emul?"Emulator":"Target", buf.GetPointer()); if (argc == TEST_ARG_COUNT) { errorType = InstallerManager::ReqeustByTest(); goto CATCH; } - else if (argc == COMMAND_ARG_COUNT) + else if (argc <= COMMAND_ARG_COUNT && (!(argv[1][2] == 'v' || argv[1][1] == 'v'))) { errorType = InstallerManager::RequestByCommand(argc, argv); goto CATCH; } + else if (argv[1][2] == 'v') + { + if (argv[3] && argv[3][1] == 'p') + { + if(argv[4]) + { + errorType = InstallerManager::RequestHybrid(argv[1][1], argv[2], atoi(argv[4])); + } + else + { + errorType = INSTALLER_ERROR_SIGNATURE_NOT_FOUND; - pi = pkgmgr_installer_new(); - _pi = pi; + AppLog("stdout is updated by errorType [%d]", errorType); + fprintf(stdout, "%d", errorType); - pkgmgr_installer_receive_request(pi, argc, argv); + goto CATCH; + } + } + else + { + errorType = InstallerManager::RequestHybrid(argv[1][1], argv[2]); + } + goto CATCH; + } + else if(argv[1][1] == 'v') + { + if (argv[3] && argv[3][1] == 'p') + { + if(argv[4]) + { + errorType = InstallerManager::RequestHybrid(argv[1][1], argv[2], atoi(argv[4])); + } + else + { + errorType = INSTALLER_ERROR_SIGNATURE_NOT_FOUND; + + AppLog("stdout is updated by errorType [%d]", errorType); + fprintf(stdout, "%d", errorType); + + goto CATCH; + } + } + else + { + errorType = InstallerManager::RequestHybrid(argv[1][2], argv[2]); + } + goto CATCH; + } + + _pi = pkgmgr_installer_new(); - req_type = pkgmgr_installer_get_request_type(pi); - if (PKGMGR_REQ_INVALID >= req_type) + pkgmgr_installer_receive_request(_pi, argc, argv); + + reqType = pkgmgr_installer_get_request_type(_pi); + if (PKGMGR_REQ_INVALID >= reqType) { goto CATCH; } - pkg_info = pkgmgr_installer_get_request_info(pi); - pkg_path = (const_cast(pkg_info)); - AppLog(" # path = [%s]", pkg_path); + pPkgInfo = pkgmgr_installer_get_request_info(_pi); + pPkgPath = (const_cast(pPkgInfo)); + AppLog(" # path = [%s]", pPkgPath); - path = pkg_path; + path = pPkgPath; - switch (req_type) + switch (reqType) { case PKGMGR_REQ_INSTALL: { - pOptional = pkgmgr_installer_get_optional_data(pi); + pOptional = pkgmgr_installer_get_optional_data(_pi); if (pOptional) { optionalData = pOptional; @@ -160,7 +205,7 @@ main(int argc, char **argv) AppLog(" # path = [%ls] -> optionalData = [%ls]", path.GetPointer(), optionalData.GetPointer()); } - pStoreClientId = pkgmgr_installer_get_caller_pkgid(pi); + pStoreClientId = pkgmgr_installer_get_caller_pkgid(_pi); if (pStoreClientId) { PackageId StoreClientId = pStoreClientId; @@ -169,7 +214,7 @@ main(int argc, char **argv) AppLog(" # optionalData = [%ls]", optionalData.GetPointer()); } - errorType = InstallerManager::Request(path, INSTALLER_OPERATION_INSTALL, INSTALLER_OPTION_NORMAL, pi, &optionalData); + errorType = InstallerManager::Request(path, INSTALLER_OPERATION_INSTALL, INSTALLER_OPTION_NORMAL, _pi, &optionalData); // if (errorType != 0) // { @@ -183,16 +228,18 @@ main(int argc, char **argv) case PKGMGR_REQ_UNINSTALL: { bool isCscPackage = false; + String originPath; PackageId reqeustPackageId; path.SubString(0, PACKAGE_ID_LENGTH, reqeustPackageId); AppLog("reqeustPackage = %ls", reqeustPackageId.GetPointer()); - String originPath; if (InstallerManager::IsUninstallUpdates(reqeustPackageId, originPath, isCscPackage) == true) { AppLog("originPath = [%ls], isCscPackage = [%s]", originPath.GetPointer(), isCscPackage?"true":"false"); optionalData = reqeustPackageId; + errorType = InstallerManager::Request(reqeustPackageId, INSTALLER_OPERATION_UNINSTALL, INSTALLER_OPTION_NORMAL, _pi); + if (isCscPackage == false) { errorType = InstallerManager::Request(originPath, INSTALLER_OPERATION_INSTALL, INSTALLER_OPTION_RESET_PRELOADED, _pi, &optionalData); @@ -207,7 +254,7 @@ main(int argc, char **argv) } else { - ret = InstallerManager::Request(reqeustPackageId, INSTALLER_OPERATION_UNINSTALL, INSTALLER_OPTION_NORMAL, _pi); + errorType = InstallerManager::Request(reqeustPackageId, INSTALLER_OPERATION_UNINSTALL, INSTALLER_OPTION_NORMAL, _pi); } __osp_installer_report_result(reqeustPackageId, errorType); @@ -234,7 +281,7 @@ main(int argc, char **argv) int moveType = -1; moveType = pkgmgr_installer_get_move_type(_pi); - InstallerManager::RequestMove(path, moveType); + InstallerManager::RequestMove(path, moveType, _pi); } else {