pomera-ai-commander 1.2.1 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,43 @@
1
+ # Alpine Linux build - creates smaller, more portable executables
2
+ FROM python:3.11-alpine
3
+
4
+ # Install build dependencies
5
+ RUN apk add --no-cache \
6
+ gcc \
7
+ musl-dev \
8
+ libffi-dev \
9
+ g++ \
10
+ make
11
+
12
+ # Set working directory
13
+ WORKDIR /app
14
+
15
+ # Copy requirements and install dependencies
16
+ COPY requirements.txt .
17
+ RUN pip install --no-cache-dir -r requirements.txt
18
+
19
+ # Install additional AI SDK dependencies (may fail gracefully)
20
+ RUN pip install --no-cache-dir google-genai>=1.0.0 || echo "google-genai installation skipped"
21
+ RUN pip install --no-cache-dir azure-ai-inference>=1.0.0b1 azure-core>=1.30.0 || echo "azure-ai-inference installation skipped"
22
+ RUN pip install --no-cache-dir tenacity>=8.2.0 || echo "tenacity installation skipped"
23
+ RUN pip install --no-cache-dir aiohttp>=3.9.0 || echo "aiohttp installation skipped"
24
+
25
+ # Copy source code
26
+ COPY . .
27
+
28
+ # Build static executable with enhanced options
29
+ RUN pyinstaller \
30
+ --onefile \
31
+ --name pomera-linux-alpine \
32
+ --strip \
33
+ --noupx \
34
+ --clean \
35
+ --noconfirm \
36
+ pomera.py
37
+
38
+ # Copy to output
39
+ RUN mkdir -p /output && \
40
+ cp dist/pomera-linux-alpine /output/ && \
41
+ chmod +x /output/pomera-linux-alpine
42
+
43
+ CMD ["cp", "/output/pomera-linux-alpine", "/output/"]
@@ -0,0 +1,54 @@
1
+ # Lightweight Linux GUI for testing executables
2
+ FROM ubuntu:22.04
3
+
4
+ ENV DEBIAN_FRONTEND=noninteractive
5
+
6
+ # Install minimal GUI and VNC
7
+ RUN apt-get update && apt-get install -y \
8
+ xfce4-session \
9
+ xfce4-panel \
10
+ xfce4-terminal \
11
+ xfwm4 \
12
+ thunar \
13
+ tightvncserver \
14
+ novnc \
15
+ websockify \
16
+ python3 \
17
+ python3-tk \
18
+ file \
19
+ && apt-get clean
20
+
21
+ # Create test user
22
+ RUN useradd -m -s /bin/bash tester
23
+ RUN echo 'tester:test123' | chpasswd
24
+
25
+ # Setup VNC for tester
26
+ USER tester
27
+ WORKDIR /home/tester
28
+
29
+ RUN mkdir -p ~/.vnc
30
+ RUN echo 'test123' | vncpasswd -f > ~/.vnc/passwd
31
+ RUN chmod 600 ~/.vnc/passwd
32
+
33
+ # VNC startup script
34
+ RUN echo '#!/bin/bash' > ~/.vnc/xstartup && \
35
+ echo 'export XKL_XMODMAP_DISABLE=1' >> ~/.vnc/xstartup && \
36
+ echo 'unset SESSION_MANAGER' >> ~/.vnc/xstartup && \
37
+ echo 'unset DBUS_SESSION_BUS_ADDRESS' >> ~/.vnc/xstartup && \
38
+ echo 'startxfce4 &' >> ~/.vnc/xstartup && \
39
+ chmod +x ~/.vnc/xstartup
40
+
41
+ # Create app directory
42
+ RUN mkdir -p ~/app
43
+
44
+ USER root
45
+
46
+ # Start script
47
+ RUN echo '#!/bin/bash' > /start.sh && \
48
+ echo 'su - tester -c "vncserver :1 -geometry 1280x720 -depth 24"' >> /start.sh && \
49
+ echo 'websockify --web=/usr/share/novnc/ 6080 localhost:5901' >> /start.sh && \
50
+ chmod +x /start.sh
51
+
52
+ EXPOSE 6080
53
+
54
+ CMD ["/start.sh"]
@@ -0,0 +1,43 @@
1
+ # Dockerfile for building Linux executables
2
+ FROM python:3.11-slim
3
+
4
+ # Install system dependencies
5
+ RUN apt-get update && apt-get install -y \
6
+ gcc \
7
+ g++ \
8
+ libc6-dev \
9
+ libffi-dev \
10
+ && rm -rf /var/lib/apt/lists/*
11
+
12
+ # Set working directory
13
+ WORKDIR /app
14
+
15
+ # Copy requirements first for better caching
16
+ COPY requirements.txt .
17
+
18
+ # Install Python dependencies
19
+ RUN pip install --no-cache-dir -r requirements.txt
20
+
21
+ # Install additional AI SDK dependencies (may fail gracefully)
22
+ RUN pip install --no-cache-dir google-genai>=1.0.0 || echo "google-genai installation skipped"
23
+ RUN pip install --no-cache-dir azure-ai-inference>=1.0.0b1 azure-core>=1.30.0 || echo "azure-ai-inference installation skipped"
24
+ RUN pip install --no-cache-dir tenacity>=8.2.0 || echo "tenacity installation skipped"
25
+ RUN pip install --no-cache-dir aiohttp>=3.9.0 || echo "aiohttp installation skipped"
26
+
27
+ # Copy source code
28
+ COPY . .
29
+
30
+ # Build the executable
31
+ RUN pyinstaller --onefile --name pomera-linux pomera.py
32
+
33
+ # Create output directory
34
+ RUN mkdir -p /output
35
+
36
+ # Copy executable to output
37
+ RUN cp dist/pomera-linux /output/
38
+
39
+ # Set executable permissions
40
+ RUN chmod +x /output/pomera-linux
41
+
42
+ # Default command
43
+ CMD ["cp", "/output/pomera-linux", "/host-output/"]
@@ -0,0 +1,80 @@
1
+ # Dockerfile for testing Linux executable with GUI
2
+ FROM ubuntu:22.04
3
+
4
+ # Avoid interactive prompts during package installation
5
+ ENV DEBIAN_FRONTEND=noninteractive
6
+
7
+ # Install minimal desktop environment and VNC server
8
+ RUN apt-get update && apt-get install -y \
9
+ xfce4 \
10
+ xfce4-goodies \
11
+ tightvncserver \
12
+ novnc \
13
+ websockify \
14
+ supervisor \
15
+ dbus-x11 \
16
+ firefox \
17
+ xterm \
18
+ nano \
19
+ wget \
20
+ curl \
21
+ python3 \
22
+ python3-tk \
23
+ && apt-get clean \
24
+ && rm -rf /var/lib/apt/lists/*
25
+
26
+ # Create a user for VNC
27
+ RUN useradd -m -s /bin/bash testuser
28
+ RUN echo 'testuser:password' | chpasswd
29
+
30
+ # Set up VNC for the user
31
+ USER testuser
32
+ WORKDIR /home/testuser
33
+
34
+ # Set VNC password
35
+ RUN mkdir -p ~/.vnc
36
+ RUN echo 'password' | vncpasswd -f > ~/.vnc/passwd
37
+ RUN chmod 600 ~/.vnc/passwd
38
+
39
+ # Create VNC startup script
40
+ RUN echo '#!/bin/bash' > ~/.vnc/xstartup
41
+ RUN echo 'xrdb $HOME/.Xresources' >> ~/.vnc/xstartup
42
+ RUN echo 'startxfce4 &' >> ~/.vnc/xstartup
43
+ RUN chmod +x ~/.vnc/xstartup
44
+
45
+ # Switch back to root for supervisor setup
46
+ USER root
47
+
48
+ # Create supervisor configuration
49
+ RUN mkdir -p /var/log/supervisor
50
+ COPY <<EOF /etc/supervisor/conf.d/supervisord.conf
51
+ [supervisord]
52
+ nodaemon=true
53
+ user=root
54
+
55
+ [program:vnc]
56
+ command=/usr/bin/vncserver :1 -geometry 1024x768 -depth 24
57
+ user=testuser
58
+ autostart=true
59
+ autorestart=true
60
+ stdout_logfile=/var/log/supervisor/vnc.log
61
+ stderr_logfile=/var/log/supervisor/vnc.log
62
+
63
+ [program:novnc]
64
+ command=/usr/share/novnc/utils/launch.sh --vnc localhost:5901 --listen 6080
65
+ user=testuser
66
+ autostart=true
67
+ autorestart=true
68
+ stdout_logfile=/var/log/supervisor/novnc.log
69
+ stderr_logfile=/var/log/supervisor/novnc.log
70
+ EOF
71
+
72
+ # Create directory for the executable
73
+ RUN mkdir -p /home/testuser/app
74
+ RUN chown testuser:testuser /home/testuser/app
75
+
76
+ # Expose VNC and noVNC ports
77
+ EXPOSE 5901 6080
78
+
79
+ # Start supervisor
80
+ CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
@@ -0,0 +1,39 @@
1
+ # Ubuntu build - good compatibility with most Linux systems
2
+ FROM ubuntu:22.04
3
+
4
+ # Install Python and build dependencies
5
+ RUN apt-get update && apt-get install -y \
6
+ python3 \
7
+ python3-pip \
8
+ python3-dev \
9
+ gcc \
10
+ g++ \
11
+ libc6-dev \
12
+ libffi-dev \
13
+ && rm -rf /var/lib/apt/lists/*
14
+
15
+ # Set working directory
16
+ WORKDIR /app
17
+
18
+ # Copy requirements and install dependencies
19
+ COPY requirements.txt .
20
+ RUN pip3 install --no-cache-dir -r requirements.txt
21
+
22
+ # Install additional AI SDK dependencies (may fail gracefully)
23
+ RUN pip3 install --no-cache-dir google-genai>=1.0.0 || echo "google-genai installation skipped"
24
+ RUN pip3 install --no-cache-dir azure-ai-inference>=1.0.0b1 azure-core>=1.30.0 || echo "azure-ai-inference installation skipped"
25
+ RUN pip3 install --no-cache-dir tenacity>=8.2.0 || echo "tenacity installation skipped"
26
+ RUN pip3 install --no-cache-dir aiohttp>=3.9.0 || echo "aiohttp installation skipped"
27
+
28
+ # Copy source code
29
+ COPY . .
30
+
31
+ # Build executable
32
+ RUN pyinstaller --onefile --name pomera-linux-ubuntu pomera.py
33
+
34
+ # Copy to output
35
+ RUN mkdir -p /output && \
36
+ cp dist/pomera-linux-ubuntu /output/ && \
37
+ chmod +x /output/pomera-linux-ubuntu
38
+
39
+ CMD ["cp", "/output/pomera-linux-ubuntu", "/output/"]
@@ -0,0 +1,53 @@
1
+ # Build Scripts and Tools
2
+
3
+ This directory contains all build scripts, Docker files, and build-related tools for Pomera AI Commander.
4
+
5
+ ## Build Scripts
6
+
7
+ ### Local Builds
8
+ - `build.bat` / `build.sh` - Standard local build (onedir)
9
+ - `build-optimized.bat` - Optimized build with maximum size reduction
10
+ - `build-all.bat` - Interactive menu for all build types
11
+
12
+ ### Docker Builds
13
+ - `build-docker.bat` / `build-docker.sh` - Simple Docker Linux build
14
+ - `docker-compose.yml` - Multi-variant Docker builds
15
+
16
+ ## Docker Files
17
+ - `Dockerfile.linux` - Basic Linux build (Python slim)
18
+ - `Dockerfile.ubuntu` - Ubuntu-based build (high compatibility)
19
+ - `Dockerfile.alpine` - Alpine-based build (smaller size)
20
+
21
+ ## Configuration Files
22
+ - `requirements-minimal.txt` - Minimal dependencies for optimized builds
23
+
24
+ ## Testing and Validation
25
+ - `validate-release-workflow.py` - Release workflow validation script
26
+ - `test-linux-simple.bat` - Simple Linux testing script
27
+
28
+ ## Usage
29
+
30
+ ### Quick Start
31
+ ```bash
32
+ # Windows - Standard build
33
+ scripts\build.bat
34
+
35
+ # Windows - Optimized build
36
+ scripts\build-optimized.bat
37
+
38
+ # Linux/macOS - Standard build
39
+ chmod +x scripts/build.sh
40
+ ./scripts/build.sh
41
+
42
+ # Docker build (any platform)
43
+ ./scripts/build-docker.sh
44
+ ```
45
+
46
+ ### Docker Multi-Platform
47
+ ```bash
48
+ cd scripts
49
+ docker-compose up build-ubuntu # Ubuntu variant
50
+ docker-compose up build-alpine # Alpine variant
51
+ ```
52
+
53
+ See the main [BUILD.md](../BUILD.md) for detailed documentation.
@@ -0,0 +1,113 @@
1
+ @echo off
2
+ echo Pomera AI Commander - Multi-Platform Build Script
3
+ echo ==================================================
4
+ echo.
5
+
6
+ REM Check if Docker is available
7
+ docker --version >nul 2>&1
8
+ set DOCKER_AVAILABLE=%errorlevel%
9
+
10
+ echo Available build options:
11
+ echo 1. Windows (local PyInstaller)
12
+ echo 2. Linux (Docker - Ubuntu base)
13
+ echo 3. Linux (Docker - Alpine base - smaller)
14
+ echo 4. All platforms (Windows local + Linux Docker)
15
+ if %DOCKER_AVAILABLE% neq 0 echo Note: Docker not available - Linux builds disabled
16
+ echo 5. Exit
17
+ echo.
18
+
19
+ set /p choice="Select build option (1-5): "
20
+
21
+ if "%choice%"=="1" goto build_windows
22
+ if "%choice%"=="2" goto build_linux_ubuntu
23
+ if "%choice%"=="3" goto build_linux_alpine
24
+ if "%choice%"=="4" goto build_all
25
+ if "%choice%"=="5" goto exit
26
+ goto invalid_choice
27
+
28
+ :build_windows
29
+ echo.
30
+ echo Building Windows executable...
31
+ call build.bat
32
+ goto end
33
+
34
+ :build_linux_ubuntu
35
+ if %DOCKER_AVAILABLE% neq 0 goto no_docker
36
+ echo.
37
+ echo Building Linux executable (Ubuntu base)...
38
+ docker build -f scripts/Dockerfile.ubuntu -t pomera-ubuntu-builder .
39
+ if errorlevel 1 goto docker_error
40
+ mkdir dist-docker 2>nul
41
+ docker run --rm -v "%cd%\dist-docker:/output" pomera-ubuntu-builder
42
+ echo Linux executable: dist-docker\pomera-linux-ubuntu
43
+ goto end
44
+
45
+ :build_linux_alpine
46
+ if %DOCKER_AVAILABLE% neq 0 goto no_docker
47
+ echo.
48
+ echo Building Linux executable (Alpine base - smaller)...
49
+ docker build -f scripts/Dockerfile.alpine -t pomera-alpine-builder .
50
+ if errorlevel 1 goto docker_error
51
+ mkdir dist-docker 2>nul
52
+ docker run --rm -v "%cd%\dist-docker:/output" pomera-alpine-builder
53
+ echo Linux executable: dist-docker\pomera-linux-alpine
54
+ goto end
55
+
56
+ :build_all
57
+ echo.
58
+ echo Building all platforms...
59
+ echo.
60
+ echo [1/3] Building Windows executable...
61
+ call build.bat
62
+ if errorlevel 1 goto error
63
+
64
+ if %DOCKER_AVAILABLE% neq 0 (
65
+ echo Docker not available - skipping Linux builds
66
+ goto end
67
+ )
68
+
69
+ echo.
70
+ echo [2/3] Building Linux executable (Ubuntu)...
71
+ docker build -f scripts/Dockerfile.ubuntu -t pomera-ubuntu-builder .
72
+ if errorlevel 1 goto docker_error
73
+ mkdir dist-docker 2>nul
74
+ docker run --rm -v "%cd%\dist-docker:/output" pomera-ubuntu-builder
75
+
76
+ echo.
77
+ echo [3/3] Building Linux executable (Alpine)...
78
+ docker build -f scripts/Dockerfile.alpine -t pomera-alpine-builder .
79
+ if errorlevel 1 goto docker_error
80
+ docker run --rm -v "%cd%\dist-docker:/output" pomera-alpine-builder
81
+
82
+ echo.
83
+ echo All builds completed!
84
+ echo Windows: dist\pomera\pomera.exe
85
+ echo Linux (Ubuntu): dist-docker\pomera-linux-ubuntu
86
+ echo Linux (Alpine): dist-docker\pomera-linux-alpine
87
+ goto end
88
+
89
+ :no_docker
90
+ echo ERROR: Docker is not available
91
+ echo Please install Docker Desktop to build Linux executables
92
+ goto end
93
+
94
+ :docker_error
95
+ echo ERROR: Docker build failed
96
+ echo Check the output above for details
97
+ goto end
98
+
99
+ :invalid_choice
100
+ echo Invalid choice. Please select 1-5.
101
+ goto end
102
+
103
+ :error
104
+ echo Build failed!
105
+ goto end
106
+
107
+ :exit
108
+ echo Exiting...
109
+ goto end
110
+
111
+ :end
112
+ echo.
113
+ pause
@@ -0,0 +1,53 @@
1
+ @echo off
2
+ echo Building Linux executable using Docker...
3
+ echo.
4
+
5
+ REM Check if Docker is installed and running
6
+ docker --version >nul 2>&1
7
+ if errorlevel 1 (
8
+ echo ERROR: Docker is not installed or not running
9
+ echo Please install Docker Desktop and make sure it's running
10
+ pause
11
+ exit /b 1
12
+ )
13
+
14
+ REM Create output directory
15
+ if not exist "dist-docker" mkdir dist-docker
16
+
17
+ echo Building Docker image...
18
+ docker build -f scripts/Dockerfile.linux -t pomera-linux-builder .
19
+
20
+ if errorlevel 1 (
21
+ echo ERROR: Failed to build Docker image
22
+ pause
23
+ exit /b 1
24
+ )
25
+
26
+ echo.
27
+ echo Running Docker container to build Linux executable...
28
+ docker run --rm -v "%cd%\dist-docker:/host-output" pomera-linux-builder
29
+
30
+ if errorlevel 1 (
31
+ echo ERROR: Failed to build Linux executable
32
+ pause
33
+ exit /b 1
34
+ )
35
+
36
+ echo.
37
+ echo Linux executable built successfully!
38
+ echo Location: dist-docker\pomera-linux
39
+ echo.
40
+
41
+ REM Check if file was created
42
+ if exist "dist-docker\pomera-linux" (
43
+ echo File size:
44
+ dir "dist-docker\pomera-linux" | find "pomera-linux"
45
+ echo.
46
+ echo You can now test this executable on a Linux system.
47
+ ) else (
48
+ echo ERROR: Executable was not created
49
+ )
50
+
51
+ echo.
52
+ echo Build complete!
53
+ pause
@@ -0,0 +1,55 @@
1
+ #!/bin/bash
2
+
3
+ echo "Building Linux executable using Docker..."
4
+ echo
5
+
6
+ # Check if Docker is installed and running
7
+ if ! command -v docker &> /dev/null; then
8
+ echo "ERROR: Docker is not installed"
9
+ echo "Please install Docker and try again"
10
+ exit 1
11
+ fi
12
+
13
+ # Check if Docker daemon is running
14
+ if ! docker info &> /dev/null; then
15
+ echo "ERROR: Docker daemon is not running"
16
+ echo "Please start Docker and try again"
17
+ exit 1
18
+ fi
19
+
20
+ # Create output directory
21
+ mkdir -p dist-docker
22
+
23
+ echo "Building Docker image..."
24
+ docker build -f scripts/Dockerfile.linux -t pomera-linux-builder .
25
+
26
+ if [ $? -ne 0 ]; then
27
+ echo "ERROR: Failed to build Docker image"
28
+ exit 1
29
+ fi
30
+
31
+ echo
32
+ echo "Running Docker container to build Linux executable..."
33
+ docker run --rm -v "$(pwd)/dist-docker:/host-output" pomera-linux-builder
34
+
35
+ if [ $? -ne 0 ]; then
36
+ echo "ERROR: Failed to build Linux executable"
37
+ exit 1
38
+ fi
39
+
40
+ echo
41
+ echo "Linux executable built successfully!"
42
+ echo "Location: dist-docker/pomera-linux"
43
+ echo
44
+
45
+ # Check if file was created
46
+ if [ -f "dist-docker/pomera-linux" ]; then
47
+ echo "File size: $(ls -lh dist-docker/pomera-linux | awk '{print $5}')"
48
+ echo
49
+ echo "You can now test this executable on a Linux system."
50
+ else
51
+ echo "ERROR: Executable was not created"
52
+ fi
53
+
54
+ echo
55
+ echo "Build complete!"
@@ -0,0 +1,101 @@
1
+ @echo off
2
+ echo Building OPTIMIZED Pomera AI Commander executable...
3
+ echo This build focuses on minimal size and maximum compression.
4
+ echo.
5
+
6
+ REM Check if Python is installed
7
+ python --version >nul 2>&1
8
+ if errorlevel 1 (
9
+ echo ERROR: Python is not installed or not in PATH
10
+ pause
11
+ exit /b 1
12
+ )
13
+
14
+ REM Install minimal requirements
15
+ echo Installing minimal requirements...
16
+ pip install -r scripts/requirements-minimal.txt
17
+ if errorlevel 1 (
18
+ echo ERROR: Failed to install requirements
19
+ pause
20
+ exit /b 1
21
+ )
22
+
23
+ REM Install additional AI SDK dependencies (may fail gracefully)
24
+ echo Installing additional AI SDK dependencies...
25
+ pip install google-genai>=1.0.0 2>nul
26
+ pip install azure-ai-inference>=1.0.0b1 azure-core>=1.30.0 2>nul
27
+ pip install tenacity>=8.2.0 2>nul
28
+ pip install aiohttp>=3.9.0 2>nul
29
+ echo AI SDK dependencies installation completed.
30
+
31
+ REM Clean previous build
32
+ if exist build rmdir /s /q build
33
+ if exist dist rmdir /s /q dist
34
+
35
+ echo.
36
+ echo Building with maximum optimization...
37
+ echo This may take a few minutes...
38
+
39
+ python -m PyInstaller --onefile --windowed ^
40
+ --optimize 2 ^
41
+ --strip ^
42
+ --noupx ^
43
+ --exclude-module pytest --exclude-module test --exclude-module tests ^
44
+ --exclude-module matplotlib --exclude-module scipy --exclude-module pandas ^
45
+ --exclude-module jupyter --exclude-module IPython ^
46
+ --exclude-module torch --exclude-module torchvision --exclude-module torchaudio ^
47
+ --exclude-module tensorflow --exclude-module sklearn --exclude-module cv2 ^
48
+ --exclude-module numpy --exclude-module pygame --exclude-module nltk ^
49
+ --exclude-module spacy --exclude-module yt_dlp --exclude-module transformers ^
50
+ --exclude-module boto3 --exclude-module botocore --exclude-module grpc ^
51
+ --exclude-module onnxruntime --exclude-module opentelemetry --exclude-module timm ^
52
+ --exclude-module emoji --exclude-module pygments --exclude-module jinja2 ^
53
+ --exclude-module anyio --exclude-module orjson --exclude-module uvicorn ^
54
+ --exclude-module fsspec --exclude-module websockets --exclude-module psutil ^
55
+ --exclude-module regex --exclude-module pydantic --exclude-module dateutil ^
56
+ --exclude-module pytz ^
57
+ --exclude-module six --exclude-module pkg_resources ^
58
+ --name pomera-optimized pomera.py
59
+
60
+ if errorlevel 1 (
61
+ echo ERROR: Build failed!
62
+ pause
63
+ exit /b 1
64
+ )
65
+
66
+ echo.
67
+ echo Checking for UPX compression...
68
+ upx --version >nul 2>&1
69
+ if errorlevel 1 (
70
+ echo UPX not found. Install UPX for additional 50-70%% size reduction:
71
+ echo https://upx.github.io/
72
+ echo.
73
+ goto :skip_upx
74
+ )
75
+
76
+ echo Compressing with UPX...
77
+ echo This will take a moment...
78
+ upx --best --lzma dist\pomera-optimized.exe
79
+ if errorlevel 1 (
80
+ echo UPX compression failed, but executable is still usable
81
+ ) else (
82
+ echo UPX compression successful!
83
+ )
84
+
85
+ :skip_upx
86
+ echo.
87
+ echo Build completed!
88
+ echo.
89
+ if exist "dist\pomera-optimized.exe" (
90
+ echo Executable: dist\pomera-optimized.exe
91
+ for %%I in ("dist\pomera-optimized.exe") do echo Size: %%~zI bytes
92
+ echo.
93
+ set /p test="Test the executable now? (y/n): "
94
+ if /i "!test!"=="y" (
95
+ start dist\pomera-optimized.exe
96
+ )
97
+ ) else (
98
+ echo ERROR: Executable not found!
99
+ )
100
+
101
+ pause