tazusb annotate win32/tazusb.nsi @ rev 189

Tiny edits
author Aleksej Bobylev <al.bobylev@gmail.com>
date Wed Mar 30 01:53:06 2016 +0300 (2016-03-30)
parents 8a2fffd8d442
children
rev   line source
erjo@97 1 ; Tazusb
al@189 2 ; Windows installer for SliTaz
erjo@97 3 ; (c) 2009 Cedric Tissieres (slitaz@objectif-securite.ch)
erjo@97 4 ; You'll need to put 7z.exe and 7z.dll from http://www.7-zip.org/ and syslinux.exe from http://syslinux.zytor.com/
erjo@97 5 ; in the NSIS plugins directory before compiling the script. Adapt the FROM_DIR constant too.
erjo@97 6 ; To add a translation, add the corresponding "!insertmacro MUI_LANGUAGE" and translates all the LangString you'll find below.
erjo@97 7
erjo@97 8 !define NAME "TazUSB - SliTaz LiveUSB utility "
erjo@97 9 !define FILENAME "tazusb"
erjo@97 10 !define VERSION "v0.2"
erjo@97 11 !define FROM_DIR "C:\ophcrack\livecd"
erjo@97 12
erjo@97 13 SetCompressor LZMA
erjo@97 14 CRCCheck On
erjo@97 15 XPStyle on
erjo@97 16
erjo@97 17 !include "MUI2.nsh"
erjo@97 18 !include "FileFunc.nsh"
erjo@97 19
erjo@97 20
erjo@97 21 # MUI Settings #####################################
erjo@97 22 ;**************
erjo@97 23
erjo@97 24 ; Interface settings
erjo@97 25 !define MUI_FINISHPAGE_NOAUTOCLOSE
erjo@97 26 !define MUI_HEADERIMAGE
erjo@97 27 !define MUI_HEADERIMAGE_BITMAP "${FROM_DIR}\slitaz-logo-nsis.bmp"
erjo@97 28 !define MUI_HEADERIMAGE_BITMAP_NOSTRETCH
erjo@97 29
erjo@97 30 ; Welcome page
erjo@97 31 !define MUI_WELCOMEPAGE_TITLE $(Welcome_Title)
erjo@97 32 !define MUI_WELCOMEPAGE_TEXT $(Welcome_Text)
erjo@97 33 !insertmacro MUI_PAGE_WELCOME
erjo@97 34 ; ISO page
erjo@97 35 Var IsoFileHw
erjo@97 36 Var IsoFile
erjo@97 37 Var Label
erjo@97 38 Var Label2
erjo@97 39 Page custom isoFilePage
erjo@97 40 ; Drive page
erjo@97 41 Var DestDriveHW
erjo@97 42 Var DestDrive
erjo@97 43 Page custom drivePage
erjo@97 44 ; Warning page
erjo@97 45 Page custom warningPage
erjo@97 46 ; Instfiles page
erjo@97 47 !insertmacro MUI_PAGE_INSTFILES
erjo@97 48 ; Finish page
erjo@97 49 !define MUI_FINISHPAGE_TITLE $(Finish_Title)
erjo@97 50 !define MUI_FINISHPAGE_TEXT $(Finish_Text)
erjo@97 51 !define MUI_FINISHPAGE_LINK $(Finish_Link)
erjo@97 52 !define MUI_FINISHPAGE_LINK_LOCATION "http://slitaz.org"
erjo@97 53 !insertmacro MUI_PAGE_FINISH
erjo@97 54
erjo@97 55 ; Language files
erjo@97 56 !insertmacro MUI_LANGUAGE "English" ;first language is the default language
erjo@97 57 !insertmacro MUI_LANGUAGE "French"
erjo@97 58 !insertmacro MUI_LANGUAGE "Portuguese"
al@189 59 !insertmacro MUI_LANGUAGE "Russian"
erjo@97 60
erjo@97 61
erjo@97 62 ; Reserve files
erjo@97 63
erjo@97 64 ; MUI end ------
erjo@97 65
erjo@97 66 ; General Parameters
erjo@97 67 Name "${NAME} ${VERSION}"
erjo@97 68 OutFile "${FROM_DIR}\${FILENAME}.exe"
erjo@97 69
erjo@97 70 # Languages ######################################
erjo@97 71
erjo@97 72 ; English
erjo@97 73 LangString Welcome_Title ${LANG_ENGLISH} "${NAME}"
al@189 74 LangString Welcome_Text ${LANG_ENGLISH} "Welcome to TazUSB. This tool will help you install SliTaz on a USB drive."
al@189 75 LangString Finish_Title ${LANG_ENGLISH} "TazUSB has completed SliTaz installation."
al@189 76 LangString Finish_Text ${LANG_ENGLISH} "SliTaz is now installed on your USB drive and the drive is bootable."
al@189 77 LangString Finish_Link ${LANG_ENGLISH} "SliTaz website"
erjo@97 78 LangString IsoPage_Title ${LANG_ENGLISH} "Select ISO file"
erjo@97 79 LangString IsoPage_Title2 ${LANG_ENGLISH} "Choose the ISO image which will be installed on your USB drive."
al@189 80 LangString IsoPage_Text ${LANG_ENGLISH} "Select SliTaz ISO file to be installed on your USB drive. You can download it from http://www.slitaz.org if needed."
al@189 81 LangString IsoPage_Input ${LANG_ENGLISH} "SliTaz ISO File"
erjo@97 82 LangString IsoFile ${LANG_ENGLISH} "ISO file|*.iso"
erjo@97 83 LangString DrivePage_Title ${LANG_ENGLISH} "Choose USB drive location"
al@189 84 LangString DrivePage_Title2 ${LANG_ENGLISH} "Choose the USB drive on which to install SliTaz."
al@189 85 LangString DrivePage_Text ${LANG_ENGLISH} "TazUSB will install SliTaz on the following drive. Make sure that this drive can be safely deleted! Click Next to continue."
erjo@97 86 LangString DrivePage_Input ${LANG_ENGLISH} "Destination USB Drive"
erjo@97 87 LangString WarningPage_Title ${LANG_ENGLISH} "Warning!"
al@189 88 LangString WarningPage_Title2 ${LANG_ENGLISH} "TazUSB is ready to install SliTaz on the selected drive."
al@189 89 LangString WarningPage_Text ${LANG_ENGLISH} "TazUSB is now ready to install SliTaz from:$\r$\n$\r$\n$IsoFile $\r$\n$\r$\non your selected destination USB drive:$\r$\n$\r$\n$DestDrive. $\r$\n$\r$\nThe contents of this drive will be deleted! If you are sure, click Next to continue."
erjo@97 90 LangString Iso2USB_Extract ${LANG_ENGLISH} "Extract files from $IsoFile"
erjo@97 91 LangString Iso2USB_CreateSyslinux ${LANG_ENGLISH} "Create syslinux configuration files on $DestDrive"
erjo@97 92 LangString Iso2USB_ExecuteSyslinux ${LANG_ENGLISH} "Execute syslinux on $R0"
erjo@97 93 LangString Iso2USB_WarningSyslinux ${LANG_ENGLISH} "An error ($R8) occurred when executing syslinux.$\r$\nYour USB drive won't be bootable..."
erjo@97 94
erjo@97 95 ; French
erjo@97 96 LangString Welcome_Title ${LANG_FRENCH} "${NAME}"
al@189 97 LangString Welcome_Text ${LANG_FRENCH} "Bienvenue dans TazUSB. Cet outil va vous aider à installer SliTaz sur une clé USB."
al@189 98 LangString Finish_Title ${LANG_FRENCH} "L'installation a été terminée par TazUSB."
al@189 99 LangString Finish_Text ${LANG_FRENCH} "SliTaz est maintenant installé sur votre clé USB et celle-ci est démarrable."
al@189 100 LangString Finish_Link ${LANG_FRENCH} "Site web de SliTaz"
al@189 101 LangString IsoPage_Title ${LANG_FRENCH} "Sélectionner un fichier ISO"
al@189 102 LangString IsoPage_Title2 ${LANG_FRENCH} "Choisissez l'image ISO qui sera installée sur votre clé USB."
al@189 103 LangString IsoPage_Text ${LANG_FRENCH} "Sélectionnez l'image ISO de SliTaz qui sera installée sur votre clé USB. Vous pouvez en télécharger une sur http://www.slitaz.org au besoin."
al@189 104 LangString IsoPage_Input ${LANG_FRENCH} "Image ISO SliTaz"
erjo@97 105 LangString IsoFile ${LANG_FRENCH} "Image ISO|*.iso"
al@189 106 LangString DrivePage_Title ${LANG_FRENCH} "Sélectionner un lecteur USB"
al@189 107 LangString DrivePage_Title2 ${LANG_FRENCH} "Choisissez le lecteur USB sur lequel sera installé SliTaz"
al@189 108 LangString DrivePage_Text ${LANG_FRENCH} "TazUSB va maintenant installer SliTaz sur le lecteur sélectionné ci-dessous. Assurez-vous que les données contenues sur cette clé peuvent être effacées! Cliquer sur Suivant pour continuer."
erjo@97 109 LangString DrivePage_Input ${LANG_FRENCH} "Lecteur USB de destination"
erjo@97 110 LangString WarningPage_Title ${LANG_FRENCH} "Attention!"
al@189 111 LangString WarningPage_Title2 ${LANG_FRENCH} "TazUSB est prêt à installer SliTaz sur le lecteur sélectionné."
al@189 112 LangString WarningPage_Text ${LANG_FRENCH} "TazUSB est maintenant prêt à installer SliTaz depuis:$\r$\n$\r$\n$IsoFile $\r$\n$\r$\nsur le lecteur USB sélectionné:$\r$\n$\r$\n$DestDrive. $\r$\n$\r$\nLe contenu de ce lecteur peut être effacé! Si vous êtes sûr, cliquer sur Suivant pour continuer."
erjo@97 113 LangString Iso2USB_Extract ${LANG_FRENCH} "Extraction des fichiers de $IsoFile"
al@189 114 LangString Iso2USB_CreateSyslinux ${LANG_FRENCH} "Création de la configuration syslinux sur $DestDrive"
al@189 115 LangString Iso2USB_ExecuteSyslinux ${LANG_FRENCH} "Exécution de syslinux sur $R0"
al@189 116 LangString Iso2USB_WarningSyslinux ${LANG_FRENCH} "Une erreur ($R8) est survenue pendant l'exécution de syslinux.$\r$\n Votre clé USB ne sera pas démarrable..."
erjo@97 117
erjo@97 118 ; Portuguese
erjo@97 119 LangString Welcome_Title ${LANG_PORTUGUESE} "${NAME}"
al@189 120 LangString Welcome_Text ${LANG_PORTUGUESE} "Bem-vindo ao TazUSB. Este aplicativo o ajudará a instalar o SliTaz em um drive USB."
al@189 121 LangString Finish_Title ${LANG_PORTUGUESE} "O TazUSB finalizou a instalação do SliTaz."
al@189 122 LangString Finish_Text ${LANG_PORTUGUESE} "O SliTaz está instalado em seu drive USB e o processo de boot agora pode ser feito."
al@189 123 LangString Finish_Link ${LANG_PORTUGUESE} "Site do SliTaz"
erjo@97 124 LangString IsoPage_Title ${LANG_PORTUGUESE} "Selecionar arquivo ISO"
erjo@97 125 LangString IsoPage_Title2 ${LANG_PORTUGUESE} "Escolher imagem ISO a ser instalada no drive USB."
al@189 126 LangString IsoPage_Text ${LANG_PORTUGUESE} "Selecionar imagem ISO do SliTaz a ser instalada no drive USB. Você pode obtê-la, se necessário, em http://www.slitaz.org."
erjo@97 127 LangString IsoPage_Input ${LANG_PORTUGUESE} "Arquivo ISO do SliTaz"
erjo@97 128 LangString IsoFile ${LANG_PORTUGUESE} "Arquivo ISO|*.iso"
al@189 129 LangString DrivePage_Title ${LANG_PORTUGUESE} "Escolha a localização do drive USB"
al@189 130 LangString DrivePage_Title2 ${LANG_PORTUGUESE} "Escolha o drive USB no qual o SliTaz será instalado."
al@189 131 LangString DrivePage_Text ${LANG_PORTUGUESE} "O TazUSB instalará o SliTaz no seguinte drive. Certifique-se de que o conteúdo deste drive possa ser seguramente apagado! Clique Next para continuar."
erjo@97 132 LangString DrivePage_Input ${LANG_PORTUGUESE} "Drive USB de destino"
erjo@97 133 LangString WarningPage_Title ${LANG_PORTUGUESE} "Aviso!"
al@189 134 LangString WarningPage_Title2 ${LANG_PORTUGUESE} "O TazUSB está pronto para instalar o SliTaz no drive selecionado."
al@189 135 LangString WarningPage_Text ${LANG_PORTUGUESE} "O TazUSB está pronto para instalar o SliTaz de:$\r$\n$\r$\n$IsoFile $\r$\n$\r$\nem seu drive de destino selecionado:$\r$\n$\r$\n$DestDrive. $\r$\n$\r$\nO conteúdo deste drive será apagado! Para prosseguir com a operação, clique Next para continuar."
erjo@97 136 LangString Iso2USB_Extract ${LANG_PORTUGUESE} "Extrair arquivos de $IsoFile"
al@189 137 LangString Iso2USB_CreateSyslinux ${LANG_PORTUGUESE} "Criar arquivos de configuração do syslinux em $DestDrive"
erjo@97 138 LangString Iso2USB_ExecuteSyslinux ${LANG_PORTUGUESE} "Executar syslinux em $R0"
al@189 139 LangString Iso2USB_WarningSyslinux ${LANG_PORTUGUESE} "Um erro ($R8) ocorreu durante a execução do syslinux.$\r$\nSeu drive USB não será inicializável..."
al@189 140
al@189 141 ; Russian
al@189 142 LangString Welcome_Title ${LANG_RUSSIAN} "${NAME}"
al@189 143 LangString Welcome_Text ${LANG_RUSSIAN} "TazUSB установит SliTaz на носитель USB."
al@189 144 LangString Finish_Title ${LANG_RUSSIAN} "Установка SliTaz завершена."
al@189 145 LangString Finish_Text ${LANG_RUSSIAN} "Теперь SliTaz установлен на загрузочный носитель USB."
al@189 146 LangString Finish_Link ${LANG_RUSSIAN} "Сайт SliTaz"
al@189 147 LangString IsoPage_Title ${LANG_RUSSIAN} "Выбор файла ISO"
al@189 148 LangString IsoPage_Title2 ${LANG_RUSSIAN} "Выберите образ ISO, который будет установлен на носитель USB."
al@189 149 LangString IsoPage_Text ${LANG_RUSSIAN} "Выберите файл образа SliTaz, который будет установлен на носитель USB. При необходимости вы можете загрузить его на http://www.slitaz.org."
al@189 150 LangString IsoPage_Input ${LANG_RUSSIAN} "Файл SliTaz ISO"
al@189 151 LangString IsoFile ${LANG_RUSSIAN} "Файл ISO|*.iso"
al@189 152 LangString DrivePage_Title ${LANG_RUSSIAN} "Выбор носителя USB"
al@189 153 LangString DrivePage_Title2 ${LANG_RUSSIAN} "Выберите носитель USB, на который будет установлен SliTaz."
al@189 154 LangString DrivePage_Text ${LANG_RUSSIAN} "TazUSB установить SliTaz на указанный носитель. Убедитесь, что на нём отсутствуют важные файлы, так как всё будет удалено! Нажмите Далее для продолжения."
al@189 155 LangString DrivePage_Input ${LANG_RUSSIAN} "Целевой носитель USB"
al@189 156 LangString WarningPage_Title ${LANG_RUSSIAN} "Внимание!"
al@189 157 LangString WarningPage_Title2 ${LANG_RUSSIAN} "TazUSB готов установить SliTaz на указанный носитель."
al@189 158 LangString WarningPage_Text ${LANG_RUSSIAN} "Теперь TazUSB готов установить SliTaz из образа$\r$\n$\r$\n$IsoFile $\r$\n$\r$\nна выбранный носитель USB$\r$\n$\r$\n$DestDrive. $\r$\n$\r$\nСодержимое этого носителя будет удалено! Нажмите Далее для продолжения."
al@189 159 LangString Iso2USB_Extract ${LANG_RUSSIAN} "Извлечение файлов из образа $IsoFile"
al@189 160 LangString Iso2USB_CreateSyslinux ${LANG_RUSSIAN} "Настройка syslinux на носителе $DestDrive"
al@189 161 LangString Iso2USB_ExecuteSyslinux ${LANG_RUSSIAN} "Запуск syslinux на $R0"
al@189 162 LangString Iso2USB_WarningSyslinux ${LANG_RUSSIAN} "При выполнении syslinux возникла ошибка ($R8).$\r$\nНоситель USB не будет загрузочным…"
erjo@97 163
erjo@97 164 # Functions #######################################
erjo@97 165
erjo@97 166 Function isoFilePage
erjo@97 167
erjo@97 168 !insertmacro MUI_HEADER_TEXT $(IsoPage_Title) $(IsoPage_Title2)
erjo@97 169
erjo@97 170 nsDialogs::Create 1018
erjo@97 171
erjo@97 172 ${If} $IsoFile == ""
erjo@97 173 GetDlgItem $6 $HWNDPARENT 1 ; Get "Next" control handle
erjo@97 174 EnableWindow $6 0 ; disable "Next" control
erjo@97 175 ${EndIf}
erjo@97 176
erjo@97 177 ${NSD_CreateLabel} 0 0 100% 30 $(IsoPage_Text)
erjo@97 178 Pop $Label
erjo@97 179
erjo@97 180 ${NSD_CreateLabel} 15 102 100% 15 $(IsoPage_Input)
erjo@97 181 Pop $Label2
erjo@97 182
erjo@97 183 nsDialogs::CreateControl EDIT ${DEFAULT_STYLES}|${WS_TABSTOP}|${ES_AUTOHSCROLL}|${ES_READONLY} ${WS_EX_WINDOWEDGE}|${WS_EX_CLIENTEDGE} 10 120 85% 20 $IsoFile
erjo@97 184 Pop $IsoFileHw
erjo@97 185
erjo@97 186 ${NSD_CreateBrowseButton} 89% 120 7% 20 ...
erjo@97 187 Var /GLOBAL IsoFile_BrowseButton
erjo@97 188 Pop $IsoFile_BrowseButton
erjo@97 189 GetFunctionAddress $0 OnClick_IsoFile_BrowseButton
erjo@97 190 nsDialogs::OnClick $IsoFile_BrowseButton $0
erjo@97 191
erjo@97 192 nsDialogs::Show
erjo@97 193 FunctionEnd
erjo@97 194
erjo@97 195 Function OnClick_IsoFile_BrowseButton
erjo@97 196
erjo@97 197
erjo@97 198 nsDialogs::SelectFileDialog /NOUNLOAD open "" $(IsoFile)
erjo@97 199 Pop $0
erjo@97 200
erjo@97 201 ${If} $0 != ""
erjo@97 202 ${NSD_SetText} $IsoFileHw $0
erjo@97 203 StrCpy $IsoFile "$0"
erjo@97 204 GetDlgItem $6 $HWNDPARENT 1 ; Get "Next" control handle
erjo@97 205 EnableWindow $6 1 ; enable "Next" control
erjo@97 206 ${EndIf}
erjo@97 207
erjo@97 208 FunctionEnd
erjo@97 209
erjo@97 210 Function drivePage
erjo@97 211
erjo@97 212 !insertmacro MUI_HEADER_TEXT $(DrivePage_Title) $(DrivePage_Title2)
erjo@97 213
erjo@97 214 nsDialogs::Create 1018
erjo@97 215
erjo@97 216 ${If} $DestDrive == ""
erjo@97 217 GetDlgItem $6 $HWNDPARENT 1 ; Get "Next" control handle
erjo@97 218 EnableWindow $6 0 ; disable "Next" control
erjo@97 219 ${EndIf}
erjo@97 220
erjo@97 221 ${NSD_CreateLabel} 0 0 100% 30 $(DrivePage_Text)
erjo@97 222 Pop $Label
erjo@97 223
erjo@97 224 ${NSD_CreateLabel} 15 102 100% 15 $(DrivePage_Input)
erjo@97 225 Pop $Label2
erjo@97 226
erjo@97 227 ${NSD_CreateDroplist} 10 120 85% 20 ""
erjo@97 228 Pop $DestDriveHw
erjo@97 229 ${NSD_OnChange} $DestDriveHw db_select.onchange
erjo@97 230 ${GetDrives} "FDD+HDD" driveListFiller
erjo@97 231 ${If} $DestDrive != ""
erjo@97 232 ${NSD_CB_SelectString} $DestDriveHw $DestDrive
erjo@97 233 ${EndIf}
erjo@97 234
erjo@97 235 nsDialogs::Show
erjo@97 236 FunctionEnd
erjo@97 237
erjo@97 238 Function db_select.onchange
erjo@97 239 Pop $DestDriveHw
erjo@97 240 ${NSD_GetText} $DestDriveHw $0
erjo@97 241 StrCpy $DestDrive "$0"
erjo@97 242 GetDlgItem $6 $HWNDPARENT 1 ; Get "Next" control handle
erjo@97 243 EnableWindow $6 1 ; enable "Next" control
erjo@97 244 FunctionEnd
erjo@97 245
erjo@97 246 Function driveListFiller
erjo@97 247 SendMessage $DestDriveHw ${CB_ADDSTRING} 0 "STR:$9"
erjo@97 248 Push 1 ; must push something - see GetDrives documentation
erjo@97 249 FunctionEnd
erjo@97 250
erjo@97 251 Function warningPage
erjo@97 252
erjo@97 253 !insertmacro MUI_HEADER_TEXT $(WarningPage_Title) $(WarningPage_Title2)
erjo@97 254
erjo@97 255 nsDialogs::Create 1018
erjo@97 256
erjo@97 257 ${NSD_CreateLabel} 0 0 100% 80% $(WarningPage_Text)
erjo@97 258 Pop $Label
erjo@97 259
erjo@97 260 nsDialogs::Show
erjo@97 261 FunctionEnd
erjo@97 262
erjo@97 263 Function ExtractIt
erjo@97 264 ; Code taken from 7zarchive.nsh (c) 2008 qwertymodo
erjo@97 265
erjo@97 266 InitPluginsDir
erjo@97 267 File /oname=$PLUGINSDIR\7z.exe "${NSISDIR}\plugins\7z.exe"
erjo@97 268 File /oname=$PLUGINSDIR\7z.dll "${NSISDIR}\plugins\7z.dll"
erjo@97 269
erjo@97 270 ClearErrors
erjo@97 271
erjo@97 272 Exch $0 ; ADDITIONAL_PARAMETERS (added to the end of the program call)
erjo@97 273 Exch 1
erjo@97 274 Exch $1 ; EXTRACT_PATHS (either "fullpaths" or "nopaths"; defaults to nopaths)
erjo@97 275 Exch 2
erjo@97 276 Exch $2 ; DESTINATION_FOLDER
erjo@97 277 Exch 3
erjo@97 278 Exch $3 ; FILE_FILTER (if blank, extracts all files; allows for wildcards, e.g. "*.doc")
erjo@97 279 Exch 4
erjo@97 280 Exch $4 ; SOURCE_ARCHIVE
erjo@97 281 Push $5
erjo@97 282
erjo@97 283 ;Extract all files if no filter specified
erjo@97 284 StrCmp $3 "" +2 0
erjo@97 285 StrCpy $3 "$\"$3$\""
erjo@97 286
erjo@97 287 ;Default folder if not specified
erjo@97 288 StrCmp $2 "" 0 GotFolder
erjo@97 289 !insertmacro GetParent
erjo@97 290 ${GetParent} "$4" $2
erjo@97 291 !insertmacro GetBaseName
erjo@97 292 ${GetBaseName} "$4" $5
erjo@97 293 StrCpy $2 "$2\$5"
erjo@97 294
erjo@97 295 GotFolder:
erjo@97 296 CreateDirectory $2
erjo@97 297 StrCmp $1 "fullpaths" 0 +2
erjo@97 298 StrCpy $5 "x"
erjo@97 299 StrCmp $1 "nopaths" +2 0
erjo@97 300 StrCmp $1 "" 0 +2
erjo@97 301 StrCpy $5 "e"
erjo@97 302
erjo@97 303 nsExec::ExecToLog '"$PLUGINSDIR\7z.exe" x $\"$4$\" $\"-o$2$\" $3 $0'
erjo@97 304
erjo@97 305 Pop $0 ;nsExec return value
erjo@97 306
erjo@97 307 Pop $5
erjo@97 308 Pop $4
erjo@97 309 Pop $0
erjo@97 310 Pop $1
erjo@97 311 Pop $2
erjo@97 312 Pop $3
erjo@97 313
erjo@97 314 FunctionEnd
erjo@97 315
erjo@97 316 !macro _ExtractFromArchive SOURCE_ARCHIVE FILE_FILTER DESTINATION_FOLDER EXTRACT_PATHS ADDITIONAL_PARAMETERS
erjo@97 317 Push "${SOURCE_ARCHIVE}"
erjo@97 318 Push "${FILE_FILTER}"
erjo@97 319 Push "${DESTINATION_FOLDER}"
erjo@97 320 Push "${EXTRACT_PATHS}"
erjo@97 321 Push "${ADDITIONAL_PARAMETERS}"
erjo@97 322 Call ExtractIt
erjo@97 323 !macroend
erjo@97 324
erjo@97 325 !define ExtractFromArchive '!insertmacro "_ExtractFromArchive"'
erjo@97 326
erjo@97 327
erjo@97 328 Function .onInit
erjo@97 329
erjo@97 330 !insertmacro MUI_LANGDLL_DISPLAY
erjo@97 331
erjo@97 332 FunctionEnd
erjo@97 333
erjo@97 334 # Section #######################################
erjo@97 335
erjo@97 336
erjo@97 337 Section "iso2usb" main
erjo@97 338 InitPluginsDir
erjo@97 339 File /oname=$PLUGINSDIR\syslinux.exe "${NSISDIR}\plugins\syslinux.exe"
erjo@97 340
erjo@97 341 SetShellVarContext all
erjo@97 342
erjo@97 343 ; Extract files from archive
erjo@97 344 DetailPrint $(Iso2USB_Extract)
erjo@97 345 ${ExtractFromArchive} "$IsoFile" "" "$DestDrive" "" "-y -x![BOOT]*"
erjo@97 346
erjo@97 347 ; Create syslinux directory and files
erjo@97 348 Var /GLOBAL BootDir
erjo@97 349 StrCpy $BootDir $DestDrive -1
erjo@97 350 StrCpy $BootDir "$BootDir\boot"
erjo@97 351 IfFileExists "$BootDir\syslinux\syslinux.cfg" SkipCreateSyslinux CreateSyslinux
erjo@97 352 CreateSyslinux:
erjo@97 353 DetailPrint $(Iso2USB_CreateSyslinux)
erjo@97 354 CreateDirectory "$BootDir\syslinux"
erjo@97 355 CopyFiles "$BootDir\isolinux\*.*" "$BootDir\syslinux"
erjo@97 356 Rename "$BootDir\syslinux\isolinux.cfg" "$BootDir\syslinux\syslinux.cfg"
erjo@97 357
erjo@97 358 SkipCreateSyslinux:
erjo@97 359 ; Execute syslinux on the drive
erjo@97 360 StrCpy $R0 $DestDrive -1 ; remove \ for syslinux
erjo@97 361 ClearErrors
erjo@97 362 DetailPrint $(Iso2USB_ExecuteSyslinux)
erjo@97 363 ExecWait '$PLUGINSDIR\syslinux.exe -maf -d boot\syslinux $R0' $R8
erjo@97 364 DetailPrint "Return $R8"
erjo@97 365
erjo@97 366 Banner::destroy
erjo@97 367 ${If} $R8 != 0
erjo@97 368 MessageBox MB_ICONEXCLAMATION|MB_OK $(Iso2USB_WarningSyslinux)
erjo@97 369 ${EndIf}
erjo@97 370
erjo@97 371 SectionEnd