Modify to enable TAC when restoring a database of TAC
authorj-h.choi <j-h.choi@samsung.com>
Tue, 29 Oct 2019 07:58:56 +0000 (16:58 +0900)
committer조웅석/Common Platform Lab(SR)/Principal Engineer/삼성전자 <ws77.cho@samsung.com>
Tue, 19 Nov 2019 04:22:51 +0000 (13:22 +0900)
NativeLauncher/tool/tac_common.cc

index 771db08..0cce217 100644 (file)
@@ -88,6 +88,8 @@ static int restoreDBCb(pkgmgrinfo_appinfo_h handle, void *userData)
                return -1;
        }
 
+       enableTACPackage(std::string(pkgId));
+
        ret = pkgmgrinfo_appinfo_get_root_path(handle, &root);
        if (ret != PMINFO_R_OK) {
                fprintf(stderr, "Failed to get root path\n");
@@ -103,9 +105,14 @@ static int restoreDBCb(pkgmgrinfo_appinfo_h handle, void *userData)
        execName = std::string(exec).substr(std::string(exec).rfind('/') + 1);
 
        std::vector<std::string> parserData;
+       std::string binDir = concatPath(rootPath, "bin");
+       std::string tacDir = concatPath(binDir, TAC_SYMLINK_SUB_DIR);
        for (auto& npAssembly : depsJsonParser(rootPath, execName, getTPA())) {
                std::string nugetPackage = npAssembly.substr(0, npAssembly.rfind(':'));
-               parserData.push_back(nugetPackage);
+               std::string assemblyName = npAssembly.substr(npAssembly.rfind(':') + 1);
+               if (bf::exists(tacDir) && bf::exists(concatPath(tacDir, assemblyName))) {
+                       parserData.push_back(nugetPackage);
+               }
        }
        std::sort(parserData.begin(), parserData.end());
        parserData.erase(unique(parserData.begin(), parserData.end()), parserData.end());