Repository navigation
Expand file tree
/
Copy pathbuilder_main.cmd
More file actions
235 lines (206 loc) · 8.38 KB
/
Copy pathbuilder_main.cmd
File metadata and controls
235 lines (206 loc) · 8.38 KB
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
@echo off
chcp 65001 >nul
setlocal EnableExtensions EnableDelayedExpansion
title Audion DevOps Tools - Builder
set "BASE_DIR=%~dp0"
if "%BASE_DIR:~-1%"=="\" set "BASE_DIR=%BASE_DIR:~0,-1%"
cd /d "%BASE_DIR%"
set "FZF_EXE=%BASE_DIR%\system_core\fzf.exe"
set "RUNTIME_DIR=%BASE_DIR%\._runtime"
set "MENU_FILE=%RUNTIME_DIR%\builder_menu.txt"
set "RES_FILE=%RUNTIME_DIR%\builder_menu_res.txt"
if not exist "%RUNTIME_DIR%" mkdir "%RUNTIME_DIR%" >nul 2>nul
:MAIN
cls
echo ======================================================================
echo AUDION DEVOPS TOOLS - BUILDER
echo ======================================================================
echo Root: %BASE_DIR%
echo.
if exist "%FZF_EXE%" goto FZF_MENU
goto FALLBACK_MENU
:FZF_MENU
>"%MENU_FILE%" echo [01] PYTHON ENV CMD ^| build_cmd ^| build portable runtime via CMD
>>"%MENU_FILE%" echo [02] PYTHON ENV PS ^| build_ps ^| optional PowerShell env builder
>>"%MENU_FILE%" echo [03] FZF ^| update_fzf ^| install/update system_core\fzf.exe
>>"%MENU_FILE%" echo [06] WINDOW ^| build_app ^| rebuild App\ - the window and its PowerShell
>>"%MENU_FILE%" echo [09] PORTABLE OFFLINE ^| install_offline ^| install from local runtime/wheelhouse
>>"%MENU_FILE%" echo.
>>"%MENU_FILE%" echo [10] RIPGREP ^| update_ripgrep ^| install/update ripgrep\rg.exe
>>"%MENU_FILE%" echo.
>>"%MENU_FILE%" echo [70] CLEAN INSTALL CACHE ^| clean_cache ^| install cache, bytecode, bin and obj of Source
>>"%MENU_FILE%" echo [71] VERIFY / DOCTOR ^| verify ^| the environment, devops_cli.cmd, the built window
>>"%MENU_FILE%" echo [72] CMD ENCODING CHECK ^| cmd_encoding ^| UTF-8 no-BOM CRLF check/fix
>>"%MENU_FILE%" echo [78] INIT FOLDERS ^| init_folders ^| recreate managed folders ^(non-destructive^)
>>"%MENU_FILE%" echo.
>>"%MENU_FILE%" echo [90] PROJECT LAUNCHER ^| project ^| open project workflow menu
>>"%MENU_FILE%" echo.
>>"%MENU_FILE%" echo [95] OPEN install ^| open_install ^| explorer install
>>"%MENU_FILE%" echo [96] OPEN runtime ^| open_runtime ^| explorer runtime
>>"%MENU_FILE%" echo [97] OPEN wheelhouse ^| open_wheels ^| explorer wheelhouse
>>"%MENU_FILE%" echo [98] OPEN licenses ^| open_licenses ^| explorer licenses
>>"%MENU_FILE%" echo [99] OPEN release ^| open_release ^| explorer release
>>"%MENU_FILE%" echo.
>>"%MENU_FILE%" echo [00] EXIT ^| exit ^| close builder
type "%MENU_FILE%" | "%FZF_EXE%" --prompt="audion@portable-builder > " --pointer=">" --header="Pick step:" --layout=reverse --border="rounded" --info=hidden --margin=1,2 > "%RES_FILE%"
set "CHOICE="
set /p CHOICE=<"%RES_FILE%"
if not defined CHOICE goto MAIN
for /f "tokens=2 delims=|" %%a in ("%CHOICE%") do set "RAW=%%a"
call :TRIM RAW
if /I "%RAW%"=="build_cmd" goto BUILD_CMD
if /I "%RAW%"=="build_ps" goto BUILD_PS
if /I "%RAW%"=="update_fzf" goto UPDATE_FZF
if /I "%RAW%"=="install_pwsh" goto INSTALL_PWSH
if /I "%RAW%"=="build_app" goto BUILD_APP
if /I "%RAW%"=="install_offline" goto INSTALL_OFFLINE
if /I "%RAW%"=="update_ripgrep" goto UPDATE_RIPGREP
if /I "%RAW%"=="clean_cache" goto CLEAN_CACHE
if /I "%RAW%"=="verify" goto VERIFY
if /I "%RAW%"=="cmd_encoding" goto CMD_ENCODING
if /I "%RAW%"=="init_folders" goto INIT_FOLDERS
if /I "%RAW%"=="project" goto PROJECT
if /I "%RAW%"=="open_install" goto OPEN_INSTALL
if /I "%RAW%"=="open_runtime" goto OPEN_RUNTIME
if /I "%RAW%"=="open_wheels" goto OPEN_WHEELS
if /I "%RAW%"=="open_licenses" goto OPEN_LICENSES
if /I "%RAW%"=="open_release" goto OPEN_RELEASE
if /I "%RAW%"=="exit" exit /b 0
goto MAIN
:FALLBACK_MENU
echo [01] PYTHON ENV CMD
echo [02] PYTHON ENV PS
echo [03] FZF
echo [06] WINDOW
echo [09] PORTABLE OFFLINE
echo.
echo [10] RIPGREP
echo.
echo [70] CLEAN INSTALL CACHE
echo [71] VERIFY / DOCTOR
echo [72] CMD ENCODING CHECK
echo [78] INIT FOLDERS ^(non-destructive^)
echo.
echo [90] PROJECT LAUNCHER
echo.
echo [95] OPEN install
echo [96] OPEN runtime
echo [97] OPEN wheelhouse
echo [98] OPEN licenses
echo [99] OPEN release
echo.
echo [00] EXIT
echo.
set "RAW="
set /p RAW="Select step number or id: "
call :TRIM RAW
if not defined RAW goto MAIN
if /I "%RAW%"=="01" goto BUILD_CMD
if /I "%RAW%"=="1" goto BUILD_CMD
if /I "%RAW%"=="build_cmd" goto BUILD_CMD
if /I "%RAW%"=="02" goto BUILD_PS
if /I "%RAW%"=="2" goto BUILD_PS
if /I "%RAW%"=="build_ps" goto BUILD_PS
if /I "%RAW%"=="03" goto UPDATE_FZF
if /I "%RAW%"=="3" goto UPDATE_FZF
if /I "%RAW%"=="update_fzf" goto UPDATE_FZF
if /I "%RAW%"=="04" goto INSTALL_PWSH
if /I "%RAW%"=="4" goto INSTALL_PWSH
if /I "%RAW%"=="install_pwsh" goto INSTALL_PWSH
if /I "%RAW%"=="06" goto BUILD_APP
if /I "%RAW%"=="6" goto BUILD_APP
if /I "%RAW%"=="build_app" goto BUILD_APP
if /I "%RAW%"=="09" goto INSTALL_OFFLINE
if /I "%RAW%"=="9" goto INSTALL_OFFLINE
if /I "%RAW%"=="install_offline" goto INSTALL_OFFLINE
if /I "%RAW%"=="10" goto UPDATE_RIPGREP
if /I "%RAW%"=="update_ripgrep" goto UPDATE_RIPGREP
if /I "%RAW%"=="70" goto CLEAN_CACHE
if /I "%RAW%"=="clean_cache" goto CLEAN_CACHE
if /I "%RAW%"=="71" goto VERIFY
if /I "%RAW%"=="verify" goto VERIFY
if /I "%RAW%"=="72" goto CMD_ENCODING
if /I "%RAW%"=="cmd_encoding" goto CMD_ENCODING
if /I "%RAW%"=="78" goto INIT_FOLDERS
if /I "%RAW%"=="init_folders" goto INIT_FOLDERS
if /I "%RAW%"=="90" goto PROJECT
if /I "%RAW%"=="project" goto PROJECT
if /I "%RAW%"=="95" goto OPEN_INSTALL
if /I "%RAW%"=="open_install" goto OPEN_INSTALL
if /I "%RAW%"=="96" goto OPEN_RUNTIME
if /I "%RAW%"=="open_runtime" goto OPEN_RUNTIME
if /I "%RAW%"=="97" goto OPEN_WHEELS
if /I "%RAW%"=="open_wheels" goto OPEN_WHEELS
if /I "%RAW%"=="98" goto OPEN_LICENSES
if /I "%RAW%"=="open_licenses" goto OPEN_LICENSES
if /I "%RAW%"=="99" goto OPEN_RELEASE
if /I "%RAW%"=="open_release" goto OPEN_RELEASE
if /I "%RAW%"=="00" exit /b 0
if /I "%RAW%"=="0" exit /b 0
if /I "%RAW%"=="exit" exit /b 0
goto MAIN
:BUILD_CMD
call "%BASE_DIR%\install\Build_Portable_Env_Build.cmd"
goto MAIN
:BUILD_PS
call "%BASE_DIR%\install\Build_Portable_Env.cmd"
goto MAIN
rem Step 04 installed a portable PowerShell into system_core\powershell. The program carries its
rem own since 2.0.0 - App\AudionPs.exe, built with the window (step 06). A build map that still
rem names the step is answered, not left without a word.
:INSTALL_PWSH
echo [SKIP] Step 04 is gone: the PowerShell of the program is App\AudionPs.exe. Take 04:install_pwsh off the build map.
goto MAIN
rem The window is App\, built from Source\ with its own .NET runtime. It is a hand step: the
rem steps of a release update what the engine runs on, and App\ travels as it was built.
:BUILD_APP
call "%BASE_DIR%\install\Build-App.cmd" /NOPAUSE
if not defined AUDION_NO_PAUSE pause
goto MAIN
:INSTALL_OFFLINE
call "%BASE_DIR%\install\install_portable_offline.cmd"
goto MAIN
:VERIFY
call "%BASE_DIR%\install\verify_portable_env.cmd"
goto MAIN
:CMD_ENCODING
call "%BASE_DIR%\install\Check-CmdEncoding.cmd" -Fix
if not defined AUDION_NO_PAUSE pause
goto MAIN
:UPDATE_FZF
call "%BASE_DIR%\install\launcher-tools-update_fzf.cmd"
goto MAIN
:UPDATE_RIPGREP
call "%BASE_DIR%\install\launcher-tools-update_ripgrep.cmd"
goto MAIN
:CLEAN_CACHE
call "%BASE_DIR%\install\Clean-Install-Cache.cmd"
goto MAIN
:OPEN_INSTALL
start "" explorer "%BASE_DIR%\install"
goto MAIN
:OPEN_RUNTIME
start "" explorer "%BASE_DIR%\runtime"
goto MAIN
:OPEN_WHEELS
start "" explorer "%BASE_DIR%\wheelhouse"
goto MAIN
:OPEN_LICENSES
if not exist "%BASE_DIR%\licenses" mkdir "%BASE_DIR%\licenses" >nul 2>nul
start "" explorer "%BASE_DIR%\licenses"
goto MAIN
:OPEN_RELEASE
start "" explorer "%BASE_DIR%\release"
goto MAIN
:PROJECT
call "%BASE_DIR%\launcher_project.cmd"
goto MAIN
:INIT_FOLDERS
call "%BASE_DIR%\install\init_folders.cmd"
if not defined AUDION_NO_PAUSE pause
goto MAIN
:TRIM
for /f "tokens=* delims= " %%z in ("!%~1!") do set "%~1=%%z"
:TRIM_R
if "!%~1:~-1!"==" " set "%~1=!%~1:~0,-1!" & goto TRIM_R
goto :eof