Mirrowel commited on
Commit
8aef79d
·
1 Parent(s): 5a16ada

feat(scripts): introduce interactive Windows batch launcher

Browse files

Consolidates and replaces the simple `start_proxy.bat` files with a unified, interactive launcher (`launcher.bat`).

This new script significantly improves the Windows execution flow by:
- Providing a main menu for running, configuring, or adding credentials.
- Allowing runtime configuration of host, port, and request logging settings.
- Automatically detecting and selecting the execution mode (compiled EXE or source code).

Files changed (3) hide show
  1. launcher.bat +185 -0
  2. start_proxy.bat +0 -3
  3. start_proxy_debug_logging.bat +0 -3
launcher.bat ADDED
@@ -0,0 +1,185 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @echo off
2
+ setlocal enabledelayedexpansion
3
+
4
+ :: Default Settings
5
+ set "HOST=0.0.0.0"
6
+ set "PORT=8000"
7
+ set "LOGGING=false"
8
+ set "EXECUTION_MODE="
9
+ set "EXE_NAME=proxy_app.exe"
10
+ set "SOURCE_PATH=src\proxy_app\main.py"
11
+
12
+ :: --- Phase 1: Detection and Mode Selection ---
13
+ set "EXE_EXISTS=false"
14
+ set "SOURCE_EXISTS=false"
15
+
16
+ if exist "%EXE_NAME%" (
17
+ set "EXE_EXISTS=true"
18
+ )
19
+
20
+ if exist "%SOURCE_PATH%" (
21
+ set "SOURCE_EXISTS=true"
22
+ )
23
+
24
+ if "%EXE_EXISTS%"=="true" (
25
+ if "%SOURCE_EXISTS%"=="true" (
26
+ call :SelectModeMenu
27
+ ) else (
28
+ set "EXECUTION_MODE=exe"
29
+ )
30
+ ) else (
31
+ if "%SOURCE_EXISTS%"=="true" (
32
+ set "EXECUTION_MODE=source"
33
+ ) else (
34
+ call :NoTargetsFound
35
+ )
36
+ )
37
+
38
+ if "%EXECUTION_MODE%"=="" (
39
+ goto :eof
40
+ )
41
+
42
+ :: --- Phase 2: Main Menu ---
43
+ :MainMenu
44
+ cls
45
+ echo ==================================================
46
+ echo LLM API Key Proxy Launcher
47
+ echo ==================================================
48
+ echo.
49
+ echo Current Configuration:
50
+ echo ----------------------
51
+ echo - Host IP: %HOST%
52
+ echo - Port: %PORT%
53
+ echo - Request Logging: %LOGGING%
54
+ echo - Execution Mode: %EXECUTION_MODE%
55
+ echo.
56
+ echo Main Menu:
57
+ echo ----------
58
+ echo 1. Run Proxy
59
+ echo 2. Configure Proxy
60
+ echo 3. Add Credentials
61
+ echo 4. Exit
62
+ echo.
63
+ set /p "CHOICE=Enter your choice: "
64
+
65
+ if "%CHOICE%"=="1" goto :RunProxy
66
+ if "%CHOICE%"=="2" goto :ConfigMenu
67
+ if "%CHOICE%"=="3" goto :AddCredentials
68
+ if "%CHOICE%"=="4" goto :eof
69
+
70
+ echo Invalid choice.
71
+ pause
72
+ goto :MainMenu
73
+
74
+ :: --- Phase 3: Configuration Sub-Menu ---
75
+ :ConfigMenu
76
+ cls
77
+ echo ==================================================
78
+ echo Configuration Menu
79
+ echo ==================================================
80
+ echo.
81
+ echo 1. Set Host IP (Current: %HOST%)
82
+ echo 2. Set Port (Current: %PORT%)
83
+ echo 3. Toggle Request Logging (Current: %LOGGING%)
84
+ echo 4. Back to Main Menu
85
+ echo.
86
+ set /p "CHOICE=Enter your choice: "
87
+
88
+ if "%CHOICE%"=="1" (
89
+ set /p "HOST=Enter new Host IP: "
90
+ goto :ConfigMenu
91
+ )
92
+ if "%CHOICE%"=="2" (
93
+ set /p "PORT=Enter new Port: "
94
+ goto :ConfigMenu
95
+ )
96
+ if "%CHOICE%"=="3" (
97
+ if "%LOGGING%"=="true" (
98
+ set "LOGGING=false"
99
+ ) else (
100
+ set "LOGGING=true"
101
+ )
102
+ goto :ConfigMenu
103
+ )
104
+ if "%CHOICE%"=="4" goto :MainMenu
105
+
106
+ echo Invalid choice.
107
+ pause
108
+ goto :ConfigMenu
109
+
110
+ :: --- Phase 4: Execution ---
111
+ :RunProxy
112
+ cls
113
+ set "ARGS=--host %HOST% --port %PORT%"
114
+ if "%LOGGING%"=="true" (
115
+ set "ARGS=%ARGS% --enable-request-logging"
116
+ )
117
+
118
+ echo Starting Proxy...
119
+ echo Arguments: %ARGS%
120
+ echo.
121
+
122
+ if "%EXECUTION_MODE%"=="exe" (
123
+ start "%EXE_NAME%" %ARGS%
124
+ ) else (
125
+ set "PYTHONPATH=%~dp0src;%PYTHONPATH%"
126
+ start python %SOURCE_PATH% %ARGS%
127
+ )
128
+ goto :eof
129
+
130
+ :AddCredentials
131
+ cls
132
+ echo Launching Credential Tool...
133
+ echo.
134
+
135
+ if "%EXECUTION_MODE%"=="exe" (
136
+ start "%EXE_NAME%" --add-credential
137
+ ) else (
138
+ set "PYTHONPATH=%~dp0src;%PYTHONPATH%"
139
+ start python %SOURCE_PATH% --add-credential
140
+ )
141
+ goto :eof
142
+
143
+ :: --- Helper Functions ---
144
+ :SelectModeMenu
145
+ cls
146
+ echo ==================================================
147
+ echo Execution Mode Selection
148
+ echo ==================================================
149
+ echo.
150
+ echo Both executable and source code found.
151
+ echo Please choose which to use:
152
+ echo.
153
+ echo 1. Executable (%EXE_NAME%)
154
+ echo 2. Source Code (%SOURCE_PATH%)
155
+ echo.
156
+ set /p "CHOICE=Enter your choice: "
157
+
158
+ if "%CHOICE%"=="1" (
159
+ set "EXECUTION_MODE=exe"
160
+ ) else if "%CHOICE%"=="2" (
161
+ set "EXECUTION_MODE=source"
162
+ ) else (
163
+ echo Invalid choice.
164
+ pause
165
+ goto :SelectModeMenu
166
+ )
167
+ goto :end_of_function
168
+
169
+ :NoTargetsFound
170
+ cls
171
+ echo ==================================================
172
+ echo Error
173
+ echo ==================================================
174
+ echo.
175
+ echo Could not find the executable (%EXE_NAME%)
176
+ echo or the source code (%SOURCE_PATH%).
177
+ echo.
178
+ echo Please ensure the launcher is in the correct
179
+ echo directory or that the project has been built.
180
+ echo.
181
+ pause
182
+ goto :eof
183
+
184
+ :end_of_function
185
+ endlocal
start_proxy.bat DELETED
@@ -1,3 +0,0 @@
1
- @echo off
2
- python src/proxy_app/main.py --host 0.0.0.0 --port 8000
3
- pause
 
 
 
 
start_proxy_debug_logging.bat DELETED
@@ -1,3 +0,0 @@
1
- @echo off
2
- python src/proxy_app/main.py --host 0.0.0.0 --port 8000 --enable-request-logging
3
- pause