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