Skip to content

Latest commit

ย 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

โœฆ Win64 Template Builder

Win64 Template Builder Preview

Win64 Template Builder es una herramienta CLI y TUI multiplataforma moderna (Linux / Windows / Wine) diseรฑada para generar y administrar estructuras de carpetas y recetas de perfiles a partir de plantillas base inmutables (Win64.rar).

Python 3.11+ Platform Tests License


๐Ÿ“‹ Requisitos e Instalaciรณn

La herramienta utiliza รบnicamente la biblioteca estรกndar de Python en producciรณn. Solo requiere una versiรณn reciente de Python y un extractor de archivos RAR (como 7-Zip).

1. Entorno de Ejecuciรณn Python

  • Python >= 3.11 instalado en el sistema.

2. Instalaciรณn de Extractor RAR (7-Zip)

Para extraer y verificar la plantilla base Win64.rar, el sistema debe contar con 7z o unrar:

๐Ÿง Linux:

  • Arch Linux / CachyOS / Manjaro:
    sudo pacman -S 7zip
  • Ubuntu / Debian / Linux Mint:
    sudo apt update && sudo apt install -y 7zip
    # o alternativamente: sudo apt install -y unrar
  • Fedora / RHEL:
    sudo dnf install -y p7zip p7zip-plugins

๐ŸชŸ Windows:

  • Vรญa Winget (PowerShell / CMD):
    winget install 7zip.7zip
  • Instalador oficial: Descargar e instalar desde https://www.7-zip.org/. El script detectarรก automรกticamente la ruta C:\Program Files\7-Zip\7z.exe incluso si no estรก en el %PATH%.

3. Configuraciรณn de Wine (Solo para usuarios de Linux)

Si ejecutas en Linux y deseas correr los ejecutables de Windows (.exe) generados:

Paquetes del Sistema:

  • Arch Linux / CachyOS:
    sudo pacman -S wine winetricks wine-gecko wine-mono vulkan-icd-loader lib32-vulkan-icd-loader lib32-gnutls
  • Ubuntu / Debian:
    sudo apt install -y wine winetricks wine-gecko wine-mono
  • Fedora:
    sudo dnf install -y wine winetricks

Preparaciรณn del prefijo Wine (Opcional pero recomendado):

Para inicializar el prefijo de 64 bits y evitar avisos continuos:

WINEPREFIX=~/.wine WINEARCH=win64 wineboot -u
winetricks corefonts vcrun2015 d3dcompiler_47

4. Entorno de Desarrollo y Pruebas (Opcional)

Para ejecutar la suite de pruebas unitarias:

# Crear entorno virtual e instalar dependencias de desarrollo
python3 -m venv .venv
source .venv/bin/activate   # En Windows: .venv\Scripts\activate
pip install -r requirements-dev.txt

๐Ÿš€ Guรญa de Uso

1. Menรบ Principal Interactivo TUI (Predeterminado)

Ejecute el programa en su terminal sin argumentos:

python3 main.py

๐ŸŽฎ Controles de Navegaciรณn por Teclado:

  • โ†‘ / โ†“ (o W / S / K / J): Moverse fluidamente entre las opciones con resaltado neรณn.
  • Enter / โ†’ (o Espacio / D / L): Seleccionar y avanzar.
  • Esc / โ† (o Q / A / H / Backspace): Volver al menรบ anterior o salir.
  • 0 - 5: Teclas de acceso directo numรฉrico instantรกneo.
  โ–ˆโ–ˆโ•—    โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ•—   โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•—  โ–ˆโ–ˆโ•—
  โ–ˆโ–ˆโ•‘    โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ•—  โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ• โ–ˆโ–ˆโ•‘  โ–ˆโ–ˆโ•‘
  โ–ˆโ–ˆโ•‘ โ–ˆโ•— โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘
  โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ•โ–ˆโ–ˆโ•—โ•šโ•โ•โ•โ•โ–ˆโ–ˆโ•‘
  โ•šโ–ˆโ–ˆโ–ˆโ•”โ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•     โ–ˆโ–ˆโ•‘
   โ•šโ•โ•โ•โ•šโ•โ•โ• โ•šโ•โ•โ•šโ•โ•  โ•šโ•โ•โ•โ• โ•šโ•โ•โ•โ•โ•โ•      โ•šโ•โ•

  โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
  โ”‚  โœฆ WIN64 TEMPLATE BUILDER                      v1.4.0-alpha โ”‚
  โ”‚  Cross-Platform Profile Recipe & Multi-Artifact Generator    โ”‚
  โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

  ๓ฐŒฝ SO: Linux (CachyOS)  โ€ข  ๓ฐŒ  Python: 3.14.7  โ€ข  ๐Ÿ“ฆ 7z: 7z: OK  โ€ข  ๐Ÿท Wine: Wine: OK

  โ”€โ”€โ”€ โ—ˆ MENรš PRINCIPAL โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

  โžœ  [ 1 ]  ๐Ÿš€ Crear nueva estructura / Aplicar perfil โœฆ
     [ 2 ]  ๐Ÿ“ Ver carpetas ya hechas (explorar, renombrar exe, ejecutar)
     [ 3 ]  ๐Ÿ“‹ Ver plantillas y perfiles disponibles
     [ 4 ]  ๐Ÿฉบ Diagnรณstico del sistema y dependencias (Linux / Windows)
     [ 5 ]  ๐Ÿงน Limpiar artefactos temporales
     [ 0 ]  ๐Ÿšช Salir

  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  [ โ†‘/โ†“ ] Navegar   [ Enter/โ†’ ] Seleccionar   [ Esc/โ† ] Atrรกs   [ 0-5 ] Atajos

2. Diagnรณstico del Sistema y Requisitos (doctor)

Ejecuta un anรกlisis exhaustivo del sistema detectando distribuciรณn Linux, kernel, runtime de Python, extractores disponibles y estado de Wine/Winetricks:

python3 main.py doctor
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Diagnรณstico del Sistema y Requisitos                   โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

Sistema Operativo: CachyOS Linux | Kernel 6.13.0-cachyos (x86_64)
Versiรณn de Python: 3.14.7

Resultados del Diagnรณstico:
  [โœ“ OK] Entorno Python: Python 3.14.7 (Compatible >= 3.11)
  [โœ“ OK] Extractor RAR: 7z encontrado en '/usr/bin/7z'
  [โœ“ OK] Wine Runner: Wine detectado en '/usr/bin/wine'
  [โœ“ OK] Winetricks: Winetricks detectado en '/usr/bin/winetricks'
  [โœ“ OK] Plantilla Base: 'Win64.rar' vรกlida (1 exe, 1 dlls, 2 idiomas)

โœ“ ยกExcelente! Todas las dependencias y herramientas estรกn listas y configuradas.

3. Explorar y Gestionar Carpetas Creadas (--list-folders)

Permite ver rรกpidamente todas las carpetas generadas con sus estructuras y ejecutables:

python3 main.py --list-folders

Desde el menรบ interactivo (Opciรณn [2]), puedes seleccionar cualquier carpeta para:

  1. โ–ถ๏ธ Ejecutar la aplicaciรณn (mediante Wine en Linux o de forma nativa en Windows).
  2. โœ๏ธ Renombrar el ejecutable .exe conservando la estructura de archivos existente.

4. Inspecciรณn de Plantilla Base (inspect)

Verifica la integridad, hashes SHA-256, ejecutables candidatos y la estructura interna del archivo Win64.rar sin tocar el disco:

python3 main.py inspect

5. Modo Simulaciรณn (--dry-run)

Muestra una vista previa detallada del plan de construcciรณn y รกrbol de directorios que se crearรญa:

python3 main.py --folder "My Game" --exe "MyGame.exe" --layout direct --dry-run

6. Automatizaciรณn CLI (Modo No Interactivo / Headless)

Para scripts o pipelines automรกticos, pasa todos los argumentos directamente por lรญnea de comandos:

Layout Directo con Ejecuciรณn en Wine / Nativo (--wine):

python3 main.py \
  --folder "Shift At Midnight Demo" \
  --exe "Shift At Midnight.exe" \
  --layout direct \
  --output "./output" \
  --wine

Layout Estructura Steam:

python3 main.py \
  --folder "Marvel Tokon" \
  --exe "Game.exe" \
  --layout steam \
  --output "./output"

Layout Steam apuntando a una biblioteca externa (--steam-library):

python3 main.py \
  --folder "Tokon Game" \
  --exe "Game.exe" \
  --layout steam \
  --steam-library "/mnt/games/SteamLibrary"

Layout Personalizado:

python3 main.py \
  --folder "Custom Game" \
  --exe "Game.exe" \
  --layout custom \
  --custom-path "steamapps/common/MyGame/Binaries/Win64"

7. Limpieza de Artefactos Temporales (clean)

Elimina de forma segura artefactos temporales creados por fallos o staging incompleto (.win64-builder-*):

python3 main.py clean

๐Ÿงช Ejecuciรณn de Pruebas Automatizadas

El proyecto cuenta con 73 pruebas automatizadas de cobertura integral (pytest):

# Ejecutar todas las pruebas con salida detallada
.venv/bin/pytest -v
============================== 73 passed in 0.63s ==============================

๐Ÿ›ก๏ธ Reglas de Seguridad y Compatibilidad Cross-Platform

  • Inmutabilidad de Plantilla: Win64.rar nunca se modifica en disco; se valida su hash antes y despuรฉs de cada operaciรณn.
  • Transaccionalidad Sibling: El staging temporal (.destination.build-<uuid>) se crea en el mismo sistema de archivos padre para prevenir fallos EXDEV entre particiones distintas (ext4, Btrfs, NTFS, exFAT).
  • Rollback Transaccional: En caso de error o interrupciรณn, se restaura el estado previo del directorio sin dejar archivos corruptos.
  • Protecciรณn contra Zip/Rar Slip: Se bloquean entradas con rutas absolutas, secuencias .., caracteres UNC o enlaces simbรณlicos maliciosos.
  • Validaciones NTFS / Windows: Se filtran caracteres prohibidos (< > : " / \ | ? *), nombres con punto o espacio final ("Game."), y nombres de dispositivo reservados en Windows (CON, PRN, AUX, NUL, COM1-9, LPT1-9) independientemente de la extensiรณn.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages