-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.bat
105 lines (89 loc) · 3.01 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
@echo off
setlocal EnableDelayedExpansion
rem This script is used to help the user setup the entire project
echo "---------------------------------"
echo " ______ _ __ ______ "
echo " | ____| (_)/ _| ____| "
echo " | |__ __ ___| |_| |__ __ __ "
echo " | __| \ \/ / | _| __| \ \/ / "
echo " | |____ > <| | | | |____ > < "
echo " |______/_/\_\_|_| |______/_/\_\ "
echo "---------------------------------"
echo Welcome to the ExifEx setup script!
echo Press any key to continue...
pause >nul
rem Check if Docker is running
docker info >nul 2>&1
if %errorlevel% equ 0 (
echo Docker is installed and running.
echo Proceeding with Docker setup...
rem Setup the Docker container
docker build -t exifex .
rem Ask the user for the port (default is 8080)
set /p "port=Please enter the port for the Docker container (default is 8080): "
if not defined port set port=8080
rem Validate the port
call :CHECK_PORT %port%
if "!isValidPort!"=="false" (
echo Invalid port. Please enter a port number between 1 and 65535:
set /p "port="
call :CHECK_PORT %port%
)
echo Starting ExifEx container on port !port!...
docker run -p !port!:!port! --name exifex exifex
) else (
rem Setup a local environment
echo It appears that Docker is not installed or the Docker daemon is not running.
echo Would you like to setup a local environment instead? (y/n^)
set /p "yn="
if /i "!yn!"=="y" (
echo Setting up local environment...
) else (
echo Exiting...
exit /b
)
rem Check if Python is installed
python --version >nul 2>&1
if %errorlevel% equ 0 (
echo Python installation found. Proceeding...
) else (
echo Python is not installed. Please install Python 3.10 or higher.
echo Exiting...
exit /b
)
rem Ask the user for the host (default is 127.0.0.1)
set /p "host=Please enter the host for the local environment (default is 127.0.0.1): "
if not defined host set host=127.0.0.1
rem Ask the user for the port (default is 8080)
set /p "port=Please enter the port for the local environment (default is 8080): "
if not defined port set port=8080
rem Validate the port
call :CHECK_PORT %port%
if "!isValidPort!"=="false" (
echo Invalid port. Please enter a port number between 1 and 65535:
set /p "port="
call :CHECK_PORT %port%
)
rem Setup python virtual environment
python -m venv .venv
call .venv\Scripts\activate
rem Install dependencies
pip install -r requirements.txt
rem Run the app with the user's configuration
echo Starting ExifEx on !host!:!port!...
python start.py -b !host! -p !port!
)
rem Function to check if the port is valid
:CHECK_PORT
set port=%1
if not defined port set port=8080
if "%port%"=="0" (
set "isValidPort=false"
) else (
set "isValidPort=true"
for /L %%i in (1,1,65535) do (
if "!port!"=="%%i" set "isValidPort=true"
)
)
exit /b
endlocal