Add '--ni-reset-dir' option of dotnettool
[platform/core/dotnet/launcher.git] / NativeLauncher / tool / dotnettool.cc
index 5c3f6e8..120b179 100644 (file)
  * limitations under the License.
  */
 
-#include "log.h"
 #include "utils.h"
-#include "db_manager.h"
 #include "ni_common.h"
 #include "tac_common.h"
 
 #include <algorithm>
 #include <cstdio>
 #include <cstring>
-#include <fstream>
 #include <vector>
 
-#include <pkgmgr-info.h>
-#include <pkgmgr_installer_info.h>
-
-#ifdef  LOG_TAG
-#undef  LOG_TAG
-#endif
-#define LOG_TAG "DOTNET_INSTALLER_PLUGIN"
-
 std::vector<std::string> getCmdArgs(char** begin, char** end)
 {
        std::vector<std::string> list;
@@ -59,6 +48,7 @@ static void help(const char *argv0)
                "       --ni-dir               - Create NI for directory\n"
                "       --ni-reset-system      - Remove System NI files\n"
                "       --ni-reset-pkg         - Remove App NI files\n"
+               "       --ni-reset-dir         - Remove NI for directory\n"
                "       --ni-regen-all-app     - Re-generate All App NI files\n"
                "       --tac-regen-all        - Re-generate All TAC files\n"
                "       --tac-restore-db       - Restore TAC Database\n"
@@ -91,6 +81,7 @@ int main(int argc, char* argv[])
        bool dllMode = false;
        bool dirMode = false;
        bool rmPkgMode = false;
+       bool rmDirMode = false;
        bool pkgDllMode = false;
        bool disableTacMode = false;
        bool enableTacMode = false;
@@ -132,13 +123,15 @@ int main(int argc, char* argv[])
                return 0;
        } else if (cmdOptionExists(argv, argv+argc, "--ni-reset-pkg")) {
                rmPkgMode = true;
+       } else if (cmdOptionExists(argv, argv+argc, "--ni-reset-dir")) {
+               rmDirMode = true;
        } else if (cmdOptionExists(argv, argv+argc, "--ni-pkg-dll")) {
                pkgDllMode = true;
        } else if (cmdOptionExists(argv, argv+argc, "--ni-regen-all-app")) {
                regenerateAppNI(flags);
                return 0;
        } else if (cmdOptionExists(argv, argv+argc, "--tac-regen-all")) {
-               regenerateTAC(flags);
+               regenerateTACNI(flags);
                return 0;
        } else if (cmdOptionExists(argv, argv+argc, "--tac-restore-db")) {
                restoreTACDB();
@@ -159,6 +152,8 @@ int main(int argc, char* argv[])
                        fprintf(stderr, "Package name is missed\n");
                } else if (dllMode) {
                        fprintf(stderr, "DLL path is missing.\n");
+               } else if (rmDirMode) {
+                       fprintf(stderr, "Directory path is missing.\n");
                }
                help(argv[0]);
                return -1;
@@ -181,7 +176,7 @@ int main(int argc, char* argv[])
                                fprintf(stderr, "Failed to generate NI file [%s]\n", pkg.c_str());
                                return -1;
                        }
-                       ret = createTACPackage(pkg, flags);
+                       ret = createTACPkgRoot(pkg, flags);
                        if (ret == TAC_ERROR_INVALID_PACKAGE) {
                                fprintf(stderr, "Failed to get root path from [%s]\n", pkg.c_str());
                                return -1;
@@ -221,6 +216,8 @@ int main(int argc, char* argv[])
                                return -1;
                        }
                }
+       } else if (rmDirMode) {
+               removeNiUnderDirs(args.data(), args.size());
        } else if (dllMode) {
                // donot return error code for generation failure.
                // we have to run crossgen for all input dlls.