convert-zip-msi.bat 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. @echo off
  2. rem This script converts portable *.zip package to *.msi package
  3. rem Check command arguments
  4. if "%1" == "" (
  5. echo.
  6. echo Syntax:
  7. echo.
  8. echo %~nx0 ^<Full path to portable .zip package^>
  9. goto :eof
  10. )
  11. rem Path to Windows Installer XML (WiX) toolset
  12. set PATH=%PATH%;"C:\Program Files (x86)\WiX Toolset v3.11\bin"
  13. rem The new package will be created from here
  14. set BUILD_PACK_DIR=%TEMP%\doublecmd-%DATE: =%
  15. rem The new package will be saved here
  16. set PACK_DIR=%~dp0/release
  17. rem Determine package file name
  18. for /f %%i in ("%1") do set PACKAGE=%%~ni
  19. rem Get package version and architecture
  20. for /f "tokens=1,2,3,4,5 delims=-." %%a in ("%PACKAGE%") do (
  21. set DC_VER=%%b.%%c.%%d
  22. set CPU_TARGET=%%e
  23. )
  24. rem Prepare needed variables
  25. if "%CPU_TARGET%" == "i386" (
  26. set CPU_TARGET=x86
  27. set PF=ProgramFilesFolder
  28. ) else if "%CPU_TARGET%" == "x86_64" (
  29. set CPU_TARGET=x64
  30. set PF=ProgramFiles64Folder
  31. )
  32. rem Prepare package build dir
  33. mkdir %BUILD_PACK_DIR%
  34. rem Extract archive
  35. unzip %1 -d %BUILD_PACK_DIR%
  36. rem Copy needed files
  37. copy license.rtf %BUILD_PACK_DIR%\
  38. copy doublecmd.wxs %BUILD_PACK_DIR%\
  39. copy ..\..\src\doublecmd.ico %BUILD_PACK_DIR%\
  40. pushd %BUILD_PACK_DIR%
  41. del /Q doublecmd\doublecmd.inf
  42. move doublecmd "Double Commander"
  43. heat dir "Double Commander" -ag -cg HeatGroup -dr %PF% -var var.SourcePath -o include.wxs
  44. candle -arch %CPU_TARGET% -dProductVersion=%DC_VER% -dSourcePath="Double Commander" -dProgramFiles=%PF% doublecmd.wxs include.wxs
  45. light -ext WixUIExtension -cultures:en-us include.wixobj doublecmd.wixobj -o %PACKAGE%.msi
  46. rem Move created package
  47. move %PACKAGE%.msi %PACK_DIR%/
  48. rem Clean temp directories
  49. popd
  50. rmdir /S /Q %BUILD_PACK_DIR%