src/jdk.jpackage/windows/native/msiwrapper/MsiWrapper.cpp
branchJDK-8200758-branch
changeset 57413 45c74e654794
child 57444 91e9d4691e5e
equal deleted inserted replaced
57412:02034583f4dc 57413:45c74e654794
       
     1 #include <windows.h>
       
     2 
       
     3 #include "WinSysInfo.h"
       
     4 #include "FileUtils.h"
       
     5 #include "Executor.h"
       
     6 #include "Resources.h"
       
     7 #include "WinErrorHandling.h"
       
     8 
       
     9 
       
    10 int wmain(int argc, wchar_t *argv[])
       
    11 {
       
    12     JP_TRY;
       
    13 
       
    14     // Create temporary directory where to extract msi file.
       
    15     const auto tempMsiDir = FileUtils::createTempDirectory();
       
    16 
       
    17     // Schedule temporary directory for deletion.
       
    18     FileUtils::Deleter cleaner;
       
    19     cleaner.appendRecursiveDirectory(tempMsiDir);
       
    20 
       
    21     const auto msiPath = FileUtils::mkpath() << tempMsiDir << L"main.msi";
       
    22 
       
    23     // Extract msi file.
       
    24     Resource(L"msi", RT_RCDATA).saveToFile(msiPath);
       
    25 
       
    26     // Setup executor to run msiexec
       
    27     Executor msiExecutor(SysInfo::getWIPath());
       
    28     msiExecutor.arg(L"/i").arg(msiPath);
       
    29     for (int i = 1; i < argc; ++i) {
       
    30         msiExecutor.arg(argv[i]);
       
    31     }
       
    32 
       
    33     // Install msi file.
       
    34     return msiExecutor.execAndWaitForExit();
       
    35 
       
    36     JP_CATCH_ALL;
       
    37 }