-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathsetup.bat
340 lines (308 loc) · 10.2 KB
/
setup.bat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
@echo off
@title = Auto Installer for GT Houdini Assets
SET CopyDirDestination=%UserProfile%\Documents\
SET CopyDirSource=%~dp0
SET CopyDirSourceAssets=%~dp0assets
SET CopyDirSourcePackages=%~dp0packages
SET JsonPackagePathPlaceholder=PATHPLACEHOLDER
SET ManualInstallationURL=https://github.com/TrevisanGMW/gt-houdini-assets
SET ExtractionDirAssets=%~dp0assets
SET ExtractionDirPackages=%~dp0packages
:MENU
@echo off
cls
color 06
@echo on
@echo.
@echo.
@echo ÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛ ÛÛ ÛÛÛÛÛÛ ÛÛ ÛÛ ÛÛÛÛÛÛ ÛÛ ÛÛÛ ÛÛ ÛÛ
@echo ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛÛÛ ÛÛ ÛÛ
@echo ÛÛ ÛÛÛ ÛÛ ÛÛÛÛÛÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ
@echo ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ
@echo ÛÛÛÛÛÛ ÛÛ ÛÛ ÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛ ÛÛ ÛÛÛÛ ÛÛ
@echo.
@echo ÛÛÛÛÛ ÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛ
@echo ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ
@echo ÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛ ÛÛÛÛÛÛÛ
@echo ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ
@echo ÛÛ ÛÛ ÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛ ÛÛ ÛÛÛÛÛÛÛ
@echo.
@echo ÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛ ÛÛ ÛÛÛÛÛÛ
@echo ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ
@echo ÛÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛ ÛÛ ÛÛ ÛÛÛÛÛÛ
@echo ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ
@echo ÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛ ÛÛ ÛÛÛÛÛÛ ÛÛ
@echo.
@echo.
@echo.
@echo. 1 = Install GT Houdini Assets
@echo. 2 = Uninstall GT Houdini Assets
@echo. 3 = About Installer
@echo.
@echo.
@echo off
SET /P M=Type 1, 2 or 3 then press ENTER:
IF %M%==1 GOTO INSTALL
IF %M%==2 GOTO UNINSTALL
IF %M%==3 GOTO ABOUT
GOTO EOF
REM Main Function
:INSTALL
IF NOT EXIST %ExtractionDirAssets% ( GOTO SETUP_MISSING_ASSETS )
IF NOT EXIST %ExtractionDirPackages% ( GOTO SETUP_MISSING_ASSETS )
IF EXIST %CopyDirDestination% (
GOTO VALID_DOCS_DIR
) ELSE (
GOTO MISSING_EXTRACTED_DIR
)
:VALID_DOCS_DIR
CD /D %CopyDirDestination%
for /D %%s in (.\*) do CALL :get_houdini_folders %%s
IF %RobocopyError%==1 GOTO robocopy_error
GOTO INSTALLATION_COMPLETE
EXIT /B %ERRORLEVEL%
REM Start installation for every version
:get_houdini_folders
echo %~1|findstr /r "[a-z]*houdini" >nul && ( CALL :build_path %%~1 )
EXIT /B 0
:build_path
SET version=%~1
SET version_no_dot=%version:.\=%
CALL :copy_asset_files %CopyDirDestination%%version_no_dot%\gt-houdini-assets
CALL :copy_json_files %CopyDirDestination%%version_no_dot%\packages
CALL :check_json_existence %CopyDirDestination%%version_no_dot%\packages
EXIT /B 0
:copy_asset_files
SET RobocopyError=0
IF EXIST "%CopyDirSourceAssets% " (
ROBOCOPY "%CopyDirSourceAssets% " "%~1 " /Z /IF "*.hda" /njh /njs /ndl /nc /ns
IF %ERRORLEVEL%==16 SET RobocopyError=1
)
EXIT /B 0
:copy_json_files
SET RobocopyError=0
IF EXIST "%CopyDirSourcePackages% " (
ROBOCOPY "%CopyDirSourcePackages%" "%~1 " /Z /IF "*.json" /njh /njs /ndl /nc /ns
IF %ERRORLEVEL%==16 SET RobocopyError=1
)
EXIT /B 0
:check_json_existence
SET JsonPackagePath=%~1\gt-houdini-assets.json
IF EXIST %JsonPackagePath% ( CALL :check_import_existence %JsonPackagePath% ) ELSE ( GOTO MISSING_EXTRACTED_DIR )
EXIT /B 0
:check_import_existence
>nul findstr "%JsonPackagePathPlaceholder%" %~1 && (
CALL :add_assets_path %~1
) || (
REM No placeholder string found
)
EXIT /B 0
:add_assets_path
SET backSlashPath=%CopyDirDestination%%version_no_dot%\gt-houdini-assets
SET forwardSlashPath=%backSlashPath:\=/%
setlocal enableextensions disabledelayedexpansion
set "search=PATHPLACEHOLDER"
set "replace=%forwardSlashPath%"
set "jsonFile=%~1"
for /f "delims=" %%i in ('type "%jsonFile%" ^& break ^> "%jsonFile%" ') do (
set "line=%%i"
setlocal enabledelayedexpansion
>>"%jsonFile%" echo(!line:%search%=%replace%!
endlocal
)
EXIT /B 0
REM Start uninstall
:UNINSTALL
IF EXIST %CopyDirDestination% (
GOTO VALID_HOUDINI_DIR_UNINSTALL
) ELSE (
GOTO MISSING_HOUDINI_DIR_UNINSTALL
)
:VALID_HOUDINI_DIR_UNINSTALL
CD /D %CopyDirDestination%
for /D %%s in (.\*) do CALL :get_houdini_folders_uninstall %%s
GOTO UNINSTALLATION_COMPLETE
EXIT /B %ERRORLEVEL%
:get_houdini_folders_uninstall
echo %~1|findstr /r "[a-z]*houdini" >nul && ( CALL :build_path_uninstall %%~1 )
EXIT /B 0
:build_path_uninstall
SET version=%~1
SET version_no_dot=%version:.\=%
CALL :remove_json_file %CopyDirDestination%%version_no_dot%\packages
del /q /f /s %CopyDirDestination%%version_no_dot%\gt-houdini-assets
rmdir /q /s %CopyDirDestination%%version_no_dot%\gt-houdini-assets
EXIT /B 0
:remove_json_file
del /q /f %~1\gt-houdini-assets.json
EXIT /B 0
REM Install Feedback
:MISSING_EXTRACTED_DIR
@echo off
color 0C
cls
@echo on
@echo.
@echo.
@echo ÛÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛ
@echo ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ
@echo ÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛ ÛÛ ÛÛÛÛÛÛ
@echo ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ
@echo ÛÛÛÛÛÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛÛÛÛÛ ÛÛ ÛÛ
@echo.
@echo.
@echo Documents directory was not found.
@echo You might have to install the assets manually.
@echo Learn how to fix this issue in the "About Installer" option.
@echo.
@echo.
@echo off
SET /P AREYOUSURE=Would you like to open the instructions for the manual installation (Y/[N])?
IF /I "%AREYOUSURE%" NEQ "Y" GOTO EOF
start "" %ManualInstallationURL%
GOTO EOF
:robocopy_error
@echo off
color 0C
cls
@echo on
@echo.
@echo.
@echo ÛÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛ
@echo ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ
@echo ÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛ ÛÛ ÛÛÛÛÛÛ
@echo ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ
@echo ÛÛÛÛÛÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛÛÛÛÛ ÛÛ ÛÛ
@echo.
@echo.
@echo An error was raised when copying the files.
@echo The installation might have succeeded, but the script can't confirm that.
@echo You might have to install the scripts manually.
@echo Learn how to possibly fix this issue in the "About Installer" option.
@echo.
@echo.
@echo off
SET /P AREYOUSURE=Would you like to open the instructions for the manual installation (Y/[N])?
IF /I "%AREYOUSURE%" NEQ "Y" GOTO EOF
start "" %ManualInstallationURL%
GOTO EOF
:INSTALLATION_COMPLETE
@echo off
color 0A
cls
@echo on
@echo.
@echo.
@echo ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛ ÛÛ ÛÛÛÛÛÛÛ
@echo ÛÛ ÛÛ ÛÛ ÛÛ ÛÛÛÛ ÛÛ ÛÛ
@echo ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛÛÛÛ
@echo ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ
@echo ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛ ÛÛÛÛ ÛÛÛÛÛÛÛ
@echo.
@echo.
@echo Please restart Houdini to load the assets.
@echo.
@echo.
@echo off
pause
GOTO EOF
REM Uninstall Feedback
:MISSING_HOUDINI_DIR_UNINSTALL
@echo off
color 0C
cls
@echo on
@echo.
@echo.
@echo ÛÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛ
@echo ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ
@echo ÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛ ÛÛ ÛÛÛÛÛÛ
@echo ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ
@echo ÛÛÛÛÛÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛÛÛÛÛ ÛÛ ÛÛ
@echo.
@echo.
@echo Houdini directory was not found.
@echo You might have to uninstall the scripts manually.
@echo Learn how to fix this issue in the "About Installer" option.
@echo.
@echo.
@echo off
SET /P AREYOUSURE=Would you like to open the instructions for the manual uninstallation (Y/[N])?
IF /I "%AREYOUSURE%" NEQ "Y" GOTO EOF
start "" %ManualInstallationURL%
GOTO EOF
:UNINSTALLATION_COMPLETE
@echo off
color 0A
cls
@echo on
@echo.
@echo.
@echo ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛ ÛÛ ÛÛÛÛÛÛÛ
@echo ÛÛ ÛÛ ÛÛ ÛÛ ÛÛÛÛ ÛÛ ÛÛ
@echo ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛÛÛÛ
@echo ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ
@echo ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛ ÛÛÛÛ ÛÛÛÛÛÛÛ
@echo.
@echo.
@echo Assets were removed.
@echo Json package file was removed.
@echo.
@echo.
@echo off
pause
GOTO EOF
:SETUP_MISSING_ASSETS
@echo off
color 0C
cls
@echo on
@echo.
@echo.
@echo ÛÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛ
@echo ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ
@echo ÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛ ÛÛ ÛÛÛÛÛÛ
@echo ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛ
@echo ÛÛÛÛÛÛÛ ÛÛ ÛÛ ÛÛ ÛÛ ÛÛÛÛÛÛ ÛÛ ÛÛ
@echo.
@echo.
@echo The setup file can't find one of the necessary folders.
@echo Missing "assets" or "packages".
@echo Did you properly extract the files before running it?
@echo.
@echo.
@echo off
pause
GOTO MENU
:ABOUT
@echo off
color 02
cls
@echo on
@echo.
@echo. _
@echo. ( ) GT Houdini Assets Setup
@echo. H
@echo. H This batch file attempts to automatically install gt houdini assets
@echo. _H_ using a Houdini package.
@echo. .-'-.-'-.
@echo. / \ It assumes that the Houdini preferences are stored in the default path
@echo. ! ! under "Documents\houdini#.#" (#.# being the version number)
@echo. ! .-------'._
@echo. ! / / '.' '. \ This is what the script does when installing:
@echo. ! \ \ @ @ / / 1. It copies necessary assets to all "houdini#.#" folders.
@echo. ! '---------' 2. It creates a json containg the path to the assets.
@echo. ! _______! 3. It copies this generated json file to "Documents\houdini#.#\packages"
@echo. ! .'-+-+-+!
@echo. ! '.-+-+-+!
@echo. ! """""" ! This is what the script does when uninstalling:
@echo. '-._______.-' 1. It removes the installed assets.
@echo. 2. It removes the generated json file.
@echo.
@echo.
@echo.
@echo off
pause
GOTO MENU
:EOF
EXIT