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
|