Initial commit: proyecto ContabilidadSaPolar completo
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization
|
||||
Culture="es-ES"
|
||||
Codepage="1252"
|
||||
xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
|
||||
<String Id="DowngradeError">Ya existe una versión más reciente de Sa Polar instalada.</String>
|
||||
<String Id="Requires64Bit">Sa Polar requiere Windows de 64 bits.</String>
|
||||
<String Id="RequiresWindows10OrLater">Sa Polar requiere Windows 10 o superior.</String>
|
||||
|
||||
<!-- UI Strings -->
|
||||
<String Id="WelcomeDlgTitle">Instalación de Sa Polar</String>
|
||||
<String Id="WelcomeDlgDescription">Asistente para instalar Sa Polar en tu sistema.</String>
|
||||
<String Id="WelcomeDlgNext">Instalar</String>
|
||||
<String Id="InstallDirDlgTitle">Directorio de instalación</String>
|
||||
<String Id="InstallDirDlgDescription">Selecciona la carpeta donde se instalará Sa Polar.</String>
|
||||
<String Id="InstallDirDlgLabel">Carpeta de destino:</String>
|
||||
<String Id="VerifyReadyDlgTitle">Listo para instalar</String>
|
||||
<String Id="VerifyReadyDlgDescription">Confirma los ajustes e inicia la instalación.</String>
|
||||
<String Id="VerifyReadyDlgInstallText">Haz clic en Instalar para comenzar.</String>
|
||||
<String Id="ProgressDlgTitle">Instalando</String>
|
||||
<String Id="ProgressDlgDescription">Instalando Sa Polar en tu sistema...</String>
|
||||
<String Id="ProgressDlgText">Procesando...</String>
|
||||
<String Id="ExitDialogTitle">Instalación completada</String>
|
||||
<String Id="ExitDialogDescription">Sa Polar se ha instalado correctamente.</String>
|
||||
<String Id="ExitDialogOptionalText">Accede al panel en: http://localhost:3000</String>
|
||||
<String Id="ExitDialogFinishText">Finalizar</String>
|
||||
<String Id="MaintenanceWelcomeDlgTitle">Mantenimiento de Sa Polar</String>
|
||||
<String Id="MaintenanceWelcomeDlgDescription">Modifica, repara o elimina la instalación.</String>
|
||||
<String Id="ModifyDlgTitle">Modificar instalación</String>
|
||||
<String Id="ModifyDlgDescription">Selecciona los componentes a instalar.</String>
|
||||
<String Id="RepairDlgTitle">Reparar instalación</String>
|
||||
<String Id="RepairDlgDescription">Repara los archivos de Sa Polar.</String>
|
||||
<String Id="RemoveDlgTitle">Desinstalar Sa Polar</String>
|
||||
<String Id="RemoveDlgDescription">Elimina Sa Polar del sistema.</String>
|
||||
|
||||
<!-- Error messages -->
|
||||
<String Id="ErrorDiskSpace">No hay suficiente espacio en disco.</String>
|
||||
<String Id="ErrorNoNetwork">No se pudo conectar a la red.</String>
|
||||
</WixLocalization>
|
||||
@@ -0,0 +1,157 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||
|
||||
<!-- Product definition -->
|
||||
<Product
|
||||
Id="*"
|
||||
Name="Sa Polar"
|
||||
Language="1034"
|
||||
Version="$(var.ProductVersion)"
|
||||
Manufacturer="Sa Polar SL"
|
||||
UpgradeCode="A1B2C3D4-E5F6-7890-ABCD-EF1234567890">
|
||||
|
||||
<Package
|
||||
InstallerVersion="500"
|
||||
Compressed="yes"
|
||||
InstallScope="perMachine"
|
||||
Manufacturer="Sa Polar SL"
|
||||
Description="Sa Polar - Sistema de gestion de alquileres"
|
||||
Platform="x64"
|
||||
Comments="Sa Polar v$(var.ProductVersion)"
|
||||
Keywords="instalador,sapolar,alquileres"
|
||||
Languages="1034" />
|
||||
|
||||
<!-- Upgrade configuration -->
|
||||
<MajorUpgrade
|
||||
DowngradeErrorMessage="!(loc.DowngradeError)"
|
||||
AllowDowngrades="no"
|
||||
Schedule="afterInstallValidate" />
|
||||
|
||||
<!-- Media -->
|
||||
<Media Id="1" Cabinet="SaPolar.cab" EmbedCab="yes" CompressionLevel="high" />
|
||||
|
||||
<!-- Properties -->
|
||||
<Property Id="ARPPRODUCTICON" Value="SaPolarIcon.exe" />
|
||||
<Property Id="ARPCONTACT" Value="Soporte Sa Polar" />
|
||||
<Property Id="ARPURLINFOABOUT" Value="https://sapolar.example.com" />
|
||||
<Property Id="ARPHELPLINK" Value="https://sapolar.example.com/soporte" />
|
||||
<Property Id="ApplicationFolderName" Value="SaPolar" />
|
||||
<Property Id="WixAppFolder" Value="WixPerMachineFolder" />
|
||||
|
||||
<!-- Conditions -->
|
||||
<Condition Message="!(loc.Requires64Bit)">
|
||||
VersionNT64
|
||||
</Condition>
|
||||
<Condition Message="!(loc.RequiresWindows10OrLater)">
|
||||
(VersionNT >= 603)
|
||||
</Condition>
|
||||
|
||||
<!-- Directory structure -->
|
||||
<Directory Id="TARGETDIR" Name="SourceDir">
|
||||
<Directory Id="ProgramFiles64Folder">
|
||||
<Directory Id="INSTALLDIR" Name="SaPolar">
|
||||
<Directory Id="SCRIPTSDIR" Name="scripts" />
|
||||
</Directory>
|
||||
</Directory>
|
||||
|
||||
<!-- Start Menu -->
|
||||
<Directory Id="ProgramMenuFolder">
|
||||
<Directory Id="StartMenuDir" Name="Sa Polar" />
|
||||
</Directory>
|
||||
|
||||
<!-- Desktop -->
|
||||
<Directory Id="DesktopFolder" />
|
||||
</Directory>
|
||||
|
||||
<!-- Components in INSTALLDIR -->
|
||||
<DirectoryRef Id="INSTALLDIR">
|
||||
<Component Id="cmpDockerCompose" Guid="D4E5F6A7-B8C9-0123-DEF1-234567890123" Win64="yes">
|
||||
<File Id="fileDockerCompose" Source="..\docker-compose.yml" />
|
||||
</Component>
|
||||
|
||||
<Component Id="cmpEnvExample" Guid="E5F6A7B8-C9D0-1234-EF12-345678901234" Win64="yes">
|
||||
<File Id="fileEnvExample" Source="..\.env.example" />
|
||||
</Component>
|
||||
|
||||
<Component Id="cmpInitSql" Guid="F6A7B8C9-D0E1-2345-F123-456789012345" Win64="yes">
|
||||
<File Id="fileInitSql" Source="..\db\init.sql" />
|
||||
</Component>
|
||||
|
||||
<Component Id="cmpBackendDockerfile" Guid="A7B8C9D0-E1F2-3456-7890-123456789abc" Win64="yes">
|
||||
<File Id="fileBackendDockerfile" Source="..\Dockerfile.backend" />
|
||||
</Component>
|
||||
|
||||
<Component Id="cmpFrontendDockerfile" Guid="C9D0E1F2-A3B4-5678-9012-3456789abcde" Win64="yes">
|
||||
<File Id="fileFrontendDockerfile" Source="..\Dockerfile.frontend" />
|
||||
</Component>
|
||||
</DirectoryRef>
|
||||
|
||||
<!-- Components in SCRIPTSDIR -->
|
||||
<DirectoryRef Id="SCRIPTSDIR">
|
||||
<Component Id="cmpManageServices" Guid="B2C3D4E5-F6A7-8901-BCDE-F12345678901" Win64="yes">
|
||||
<File Id="fileManageServices" Source="..\installer\scripts\manage-services.ps1" />
|
||||
</Component>
|
||||
<Component Id="cmpUninstall" Guid="C3D4E5F6-A7B8-9012-CDEF-123456789013" Win64="yes">
|
||||
<File Id="fileUninstall" Source="..\installer\scripts\uninstall.ps1" />
|
||||
</Component>
|
||||
</DirectoryRef>
|
||||
|
||||
<!-- Start Menu shortcuts -->
|
||||
<DirectoryRef Id="StartMenuDir">
|
||||
<Component Id="cmpShortcutsStartMenu" Guid="D0E1F2A3-B4C5-6789-0123-456789abcdef" Win64="yes">
|
||||
<Shortcut Id="shortcutWebApp" Name="Sa Polar - Panel" Description="Abrir panel de administracion" Target="[System64Folder]cmd.exe" Arguments="/c start http://localhost:3000" WorkingDirectory="INSTALLDIR" />
|
||||
<Shortcut Id="shortcutServices" Name="Sa Polar - Gestor de Servicios" Description="Gestionar servicios Docker" Target="[System64Folder]WindowsPowerShell\v1.0\powershell.exe" Arguments="-NoExit -ExecutionPolicy Bypass -File "[SCRIPTSDIR]manage-services.ps1" -Action status" WorkingDirectory="INSTALLDIR" />
|
||||
<RemoveFolder Id="removeStartMenuDir" On="uninstall" />
|
||||
<RegistryValue Root="HKCU" Key="Software\SaPolar" Name="installed" Type="integer" Value="1" />
|
||||
</Component>
|
||||
</DirectoryRef>
|
||||
|
||||
<!-- Desktop shortcut -->
|
||||
<DirectoryRef Id="DesktopFolder">
|
||||
<Component Id="cmpShortcutDesktop" Guid="E1F2A3B4-C5D6-7890-1234-56789abcdef0" Win64="yes">
|
||||
<Shortcut Id="shortcutDesktop" Name="Sa Polar" Description="Abrir Sa Polar" Target="[System64Folder]cmd.exe" Arguments="/c start http://localhost:3000" WorkingDirectory="INSTALLDIR" />
|
||||
<RegistryValue Root="HKCU" Key="Software\SaPolar" Name="desktop_shortcut" Type="integer" Value="1" />
|
||||
</Component>
|
||||
</DirectoryRef>
|
||||
|
||||
<!-- Features -->
|
||||
<Feature Id="FeatureCore" Title="Sa Polar - Nucleo" Level="1" Description="Archivos principales del sistema">
|
||||
<ComponentRef Id="cmpDockerCompose" />
|
||||
<ComponentRef Id="cmpEnvExample" />
|
||||
<ComponentRef Id="cmpInitSql" />
|
||||
<ComponentRef Id="cmpBackendDockerfile" />
|
||||
<ComponentRef Id="cmpFrontendDockerfile" />
|
||||
<ComponentRef Id="cmpManageServices" />
|
||||
<ComponentRef Id="cmpUninstall" />
|
||||
</Feature>
|
||||
|
||||
<Feature Id="FeatureShortcuts" Title="Accesos directos" Level="1" Description="Accesos directos en Inicio y escritorio">
|
||||
<ComponentRef Id="cmpShortcutsStartMenu" />
|
||||
<ComponentRef Id="cmpShortcutDesktop" />
|
||||
</Feature>
|
||||
|
||||
<!-- UI -->
|
||||
<UI Id="SaPolarUI">
|
||||
<UIRef Id="WixUI_InstallDir" />
|
||||
<Publish Dialog="ExitDialog" Control="Finish" Event="SetProgress" Value="100">1</Publish>
|
||||
</UI>
|
||||
|
||||
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" />
|
||||
|
||||
<!-- Custom actions -->
|
||||
<CustomAction Id="caDockerComposeUp" Directory="INSTALLDIR" Execute="deferred" Impersonate="no" Return="ignore"
|
||||
ExeCommand=""[System64Folder]WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy Bypass -Command "docker compose up -d --remove-orphans 2>&1"" />
|
||||
|
||||
<CustomAction Id="caDockerComposeDown" Directory="INSTALLDIR" Execute="deferred" Impersonate="no" Return="ignore"
|
||||
ExeCommand=""[System64Folder]WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy Bypass -Command "docker compose down -v 2>&1"" />
|
||||
|
||||
<InstallExecuteSequence>
|
||||
<Custom Action="caDockerComposeUp" After="InstallFiles">NOT Installed</Custom>
|
||||
<Custom Action="caDockerComposeDown" Before="RemoveFiles">(REMOVE = "ALL")</Custom>
|
||||
</InstallExecuteSequence>
|
||||
|
||||
<!-- Icon -->
|
||||
<Icon Id="SaPolarIcon.exe" SourceFile="..\installer\assets\sa-polar.ico" />
|
||||
|
||||
</Product>
|
||||
</Wix>
|
||||
@@ -0,0 +1,85 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||
<Product Id="{6151F88F-A6ED-4E9B-8E49-B7C6D5E8176E}" Codepage="1252" Language="1034" Manufacturer="Sa Polar SL" Name="Sa Polar" UpgradeCode="{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}" Version="1.0.0">
|
||||
<Package Comments="Sa Polar v1.0.0" Compressed="yes" Description="Sa Polar - Sistema de gestion de alquileres" InstallerVersion="500" Keywords="instalador,sapolar,alquileres" Languages="1034" Manufacturer="Sa Polar SL" Platform="x64" />
|
||||
<Condition Message="Sa Polar requiere Windows de 64 bits.">VersionNT64</Condition>
|
||||
<Condition Message="Sa Polar requiere Windows 10 o superior.">(VersionNT >= 603)</Condition>
|
||||
<CustomAction Id="caDockerComposeUp" Directory="INSTALLDIR" ExeCommand=""[System64Folder]WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy Bypass -Command "docker compose up -d --remove-orphans 2>&1"" Return="ignore" Execute="deferred" Impersonate="no" />
|
||||
<CustomAction Id="caDockerComposeDown" Directory="INSTALLDIR" ExeCommand=""[System64Folder]WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy Bypass -Command "docker compose down -v 2>&1"" Return="ignore" Execute="deferred" Impersonate="no" />
|
||||
<Directory Id="TARGETDIR" Name="SourceDir">
|
||||
<Directory Id="DesktopFolder">
|
||||
<Component Id="cmpShortcutDesktop" Guid="{E1F2A3B4-C5D6-7890-1234-56789ABCDEF0}" Win64="yes">
|
||||
<RegistryValue Id="regF11A694D3AC6F584E1A1F5035FA3245E" Root="HKCU" Key="Software\SaPolar" Name="desktop_shortcut" Value="1" Type="integer" KeyPath="yes" />
|
||||
<Shortcut Id="shortcutDesktop" Directory="DesktopFolder" Name="Sa Polar" ShortName="5thhyrzf" Description="Abrir Sa Polar" Arguments="/c start http://localhost:3000" WorkingDirectory="INSTALLDIR" Advertise="yes" />
|
||||
</Component>
|
||||
</Directory>
|
||||
<Directory Id="ProgramFiles64Folder">
|
||||
<Directory Id="INSTALLDIR" Name="SaPolar">
|
||||
<Component Id="cmpDockerCompose" Guid="{D4E5F6A7-B8C9-0123-DEF1-234567890123}" Win64="yes">
|
||||
<File Id="fileDockerCompose" Name="docker-compose.yml" KeyPath="yes" ShortName="v3kwg7oi.yml" DiskId="1" Source="msi_extract\File\fileDockerCompose" />
|
||||
</Component>
|
||||
<Component Id="cmpEnvExample" Guid="{E5F6A7B8-C9D0-1234-EF12-345678901234}" Win64="yes">
|
||||
<File Id="fileEnvExample" Name=".env.example" KeyPath="yes" ShortName="nf9fqwxk.exa" DiskId="1" Source="msi_extract\File\fileEnvExample" />
|
||||
</Component>
|
||||
<Component Id="cmpInitSql" Guid="{F6A7B8C9-D0E1-2345-F123-456789012345}" Win64="yes">
|
||||
<File Id="fileInitSql" Name="init.sql" KeyPath="yes" DiskId="1" Source="msi_extract\File\fileInitSql" />
|
||||
</Component>
|
||||
<Component Id="cmpBackendDockerfile" Guid="{A7B8C9D0-E1F2-3456-7890-123456789ABC}" Win64="yes">
|
||||
<File Id="fileBackendDockerfile" Name="Dockerfile.backend" KeyPath="yes" ShortName="haovadb_.bac" DiskId="1" Source="msi_extract\File\fileBackendDockerfile" />
|
||||
</Component>
|
||||
<Component Id="cmpFrontendDockerfile" Guid="{C9D0E1F2-A3B4-5678-9012-3456789ABCDE}" Win64="yes">
|
||||
<File Id="fileFrontendDockerfile" Name="Dockerfile.frontend" KeyPath="yes" ShortName="s5ikj5mu.fro" DiskId="1" Source="msi_extract\File\fileFrontendDockerfile" />
|
||||
</Component>
|
||||
<Directory Id="SCRIPTSDIR" Name="scripts">
|
||||
<Component Id="cmpManageServices" Guid="{B2C3D4E5-F6A7-8901-BCDE-F12345678901}" Win64="yes">
|
||||
<File Id="fileManageServices" Name="manage-services.ps1" KeyPath="yes" ShortName="5ltltwjm.ps1" DiskId="1" Source="msi_extract\File\fileManageServices" />
|
||||
</Component>
|
||||
<Component Id="cmpUninstall" Guid="{C3D4E5F6-A7B8-9012-CDEF-123456789013}" Win64="yes">
|
||||
<File Id="fileUninstall" Name="uninstall.ps1" KeyPath="yes" ShortName="pmrova3o.ps1" DiskId="1" Source="msi_extract\File\fileUninstall" />
|
||||
</Component>
|
||||
</Directory>
|
||||
</Directory>
|
||||
</Directory>
|
||||
<Directory Id="ProgramMenuFolder">
|
||||
<Directory Id="StartMenuDir" Name="Sa Polar" ShortName="rey6j8lp">
|
||||
<Component Id="cmpShortcutsStartMenu" Guid="{D0E1F2A3-B4C5-6789-0123-456789ABCDEF}" Win64="yes">
|
||||
<RegistryValue Id="regFE7A44C7942DA9F793E5E1CF6FCAC612" Root="HKCU" Key="Software\SaPolar" Name="installed" Value="1" Type="integer" KeyPath="yes" />
|
||||
<RemoveFolder Id="removeStartMenuDir" Directory="StartMenuDir" On="uninstall" />
|
||||
<Shortcut Id="shortcutWebApp" Directory="StartMenuDir" Name="Sa Polar - Panel" ShortName="hxobdbkd" Description="Abrir panel de administracion" Arguments="/c start http://localhost:3000" WorkingDirectory="INSTALLDIR" Advertise="yes" />
|
||||
<Shortcut Id="shortcutServices" Directory="StartMenuDir" Name="Sa Polar - Gestor de Servicios" ShortName="th_pfbcd" Description="Gestionar servicios Docker" Arguments="-NoExit -ExecutionPolicy Bypass -File "[SCRIPTSDIR]manage-services.ps1" -Action status" WorkingDirectory="INSTALLDIR" Advertise="yes" />
|
||||
</Component>
|
||||
</Directory>
|
||||
</Directory>
|
||||
</Directory>
|
||||
<Feature Id="FeatureCore" Description="Archivos principales del sistema" Level="1" Title="Sa Polar - Nucleo">
|
||||
<ComponentRef Id="cmpDockerCompose" />
|
||||
<ComponentRef Id="cmpEnvExample" />
|
||||
<ComponentRef Id="cmpInitSql" />
|
||||
<ComponentRef Id="cmpBackendDockerfile" />
|
||||
<ComponentRef Id="cmpFrontendDockerfile" />
|
||||
<ComponentRef Id="cmpManageServices" />
|
||||
<ComponentRef Id="cmpUninstall" />
|
||||
</Feature>
|
||||
<Feature Id="FeatureShortcuts" Description="Accesos directos en Inicio y escritorio" Level="1" Title="Accesos directos">
|
||||
<ComponentRef Id="cmpShortcutsStartMenu" />
|
||||
<ComponentRef Id="cmpShortcutDesktop" />
|
||||
</Feature>
|
||||
<Icon Id="SaPolarIcon.exe" SourceFile="msi_extract\Icon\SaPolarIcon.exe" />
|
||||
<MajorUpgrade DowngradeErrorMessage="Ya existe una versión más reciente de Sa Polar instalada." Schedule="afterInstallValidate" />
|
||||
<Media Id="1" Cabinet="SaPolar.cab" EmbedCab="yes" />
|
||||
<Property Id="ALLUSERS" Value="1" />
|
||||
<Property Id="ARPPRODUCTICON" Value="SaPolarIcon.exe" />
|
||||
<Property Id="ARPCONTACT" Value="Soporte Sa Polar" />
|
||||
<Property Id="ARPURLINFOABOUT" Value="https://sapolar.example.com" />
|
||||
<Property Id="ARPHELPLINK" Value="https://sapolar.example.com/soporte" />
|
||||
<Property Id="ApplicationFolderName" Value="SaPolar" />
|
||||
<Property Id="WixAppFolder" Value="WixPerMachineFolder" />
|
||||
<Property Id="WIX_DOWNGRADE_DETECTED" Secure="yes" />
|
||||
<Property Id="WIX_UPGRADE_DETECTED" Secure="yes" />
|
||||
<UIRef Id="WixUI_InstallDir" />
|
||||
<InstallExecuteSequence>
|
||||
<Custom Action="caDockerComposeDown" Before="RemoveFiles">(REMOVE = "ALL")</Custom>
|
||||
<Custom Action="caDockerComposeUp" After="InstallFiles">NOT Installed</Custom>
|
||||
</InstallExecuteSequence>
|
||||
</Product>
|
||||
</Wix>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
@@ -0,0 +1,96 @@
|
||||
@echo off
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
echo ============================================
|
||||
echo Sa Polar - Compilacion MSI
|
||||
echo ============================================
|
||||
echo.
|
||||
|
||||
:: Config
|
||||
set WIXBIN="%ProgramFiles(x86)%\WiX Toolset v3.11\bin"
|
||||
set PROJECT_DIR=%~dp0..
|
||||
set INSTALLER_DIR=%~dp0
|
||||
set OUTPUT_DIR=%INSTALLER_DIR%output
|
||||
set VERSION=1.0.0
|
||||
set PRODUCT_WXS=%INSTALLER_DIR%Product.wxs
|
||||
set LANG_WXL=%INSTALLER_DIR%Lang.wxl
|
||||
set ICON_PATH=%INSTALLER_DIR%assets\sa-polar.ico
|
||||
|
||||
:: Clean
|
||||
if exist "%OUTPUT_DIR%" rmdir /s /q "%OUTPUT_DIR%"
|
||||
mkdir "%OUTPUT_DIR%"
|
||||
|
||||
:: Pre-compile checks
|
||||
echo [1/4] Verificando archivos necesarios...
|
||||
|
||||
set FILES_MISSING=0
|
||||
for %%F in (
|
||||
"%PROJECT_DIR%\docker-compose.yml"
|
||||
"%PROJECT_DIR%\.env.example"
|
||||
"%PROJECT_DIR%\nginx.conf"
|
||||
"%PROJECT_DIR%\Dockerfile.backend"
|
||||
"%PROJECT_DIR%\Dockerfile.frontend"
|
||||
"%PROJECT_DIR%\backend\src\main\resources\db\init.sql"
|
||||
"%INSTALLER_DIR%\scripts\install.ps1"
|
||||
"%INSTALLER_DIR%\scripts\manage-services.ps1"
|
||||
"%INSTALLER_DIR%\scripts\uninstall.ps1"
|
||||
"%INSTALLER_DIR%\scripts\create-shortcuts.ps1"
|
||||
"%ICON_PATH%"
|
||||
) do (
|
||||
if not exist %%F (
|
||||
echo [ERROR] No encontrado: %%F
|
||||
set FILES_MISSING=1
|
||||
)
|
||||
)
|
||||
if %FILES_MISSING%==1 (
|
||||
echo.
|
||||
echo ERROR: Faltan archivos necesarios.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo Todos los archivos OK.
|
||||
echo.
|
||||
|
||||
:: Compile .wxs to .wixobj
|
||||
echo [2/4] Compilando fuente WiX...
|
||||
%WIXBIN%\candle.exe -nologo -out "%OUTPUT_DIR%\Product.wixobj" -dProductVersion="%VERSION%" "%PRODUCT_WXS%"
|
||||
if %ERRORLEVEL% neq 0 (
|
||||
echo ERROR en la compilacion.
|
||||
pause
|
||||
exit /b %ERRORLEVEL%
|
||||
)
|
||||
echo OK.
|
||||
echo.
|
||||
|
||||
:: Link .wixobj to .msi
|
||||
echo [3/4] Generando MSI...
|
||||
%WIXBIN%\light.exe -nologo -out "%OUTPUT_DIR%\SaPolar-v%VERSION%.msi" -loc "%LANG_WXL%" -ext "%WIXBIN%\\WixUIExtension.dll" -cultures:es-ES "%OUTPUT_DIR%\Product.wixobj"
|
||||
if %ERRORLEVEL% neq 0 (
|
||||
echo ERROR al generar MSI.
|
||||
pause
|
||||
exit /b %ERRORLEVEL%
|
||||
)
|
||||
echo OK.
|
||||
echo.
|
||||
|
||||
:: Sign MSI (if signtool is available)
|
||||
echo [4/4] Firmando instalador...
|
||||
set SIGNTOOL="%ProgramFiles(x86)%\Windows Kits\10\bin\10.0.19041.0\x64\signtool.exe"
|
||||
if exist "%SIGNTOOL%" (
|
||||
%SIGNTOOL% sign /fd SHA256 /a "%OUTPUT_DIR%\SaPolar-v%VERSION%.msi"
|
||||
if !ERRORLEVEL! equ 0 (
|
||||
echo Instalador firmado correctamente.
|
||||
) else (
|
||||
echo [ADVERTENCIA] No se pudo firmar el instalador.
|
||||
)
|
||||
) else (
|
||||
echo [ADVERTENCIA] signtool.exe no encontrado. El MSI no esta firmado.
|
||||
)
|
||||
echo.
|
||||
|
||||
echo ============================================
|
||||
echo COMPILACION COMPLETADA!
|
||||
echo Output: %OUTPUT_DIR%\SaPolar-v%VERSION%.msi
|
||||
echo ============================================
|
||||
echo.
|
||||
pause
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,59 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Sa Polar - Crear accesos directos
|
||||
.DESCRIPTION
|
||||
Crea accesos directos en Inicio y Escritorio.
|
||||
Se ejecuta durante la instalación MSI.
|
||||
#>
|
||||
|
||||
param(
|
||||
[string]$InstallDir = "$env:ProgramFiles\SaPolar",
|
||||
[switch]$Desktop
|
||||
)
|
||||
|
||||
$startMenuPath = "$([Environment]::GetFolderPath('Programs'))\Sa Polar"
|
||||
$desktopPath = [Environment]::GetFolderPath('Desktop')
|
||||
$psExe = "$env:SystemRoot\System32\WindowsPowerShell\v1.0\powershell.exe"
|
||||
$manageServices = Join-Path $InstallDir "scripts\manage-services.ps1"
|
||||
|
||||
# Crear directorio Start Menu
|
||||
if (-not (Test-Path $startMenuPath)) {
|
||||
New-Item -ItemType Directory -Path $startMenuPath -Force | Out-Null
|
||||
}
|
||||
|
||||
# Acceso directo: Panel web
|
||||
$wshell = New-Object -ComObject WScript.Shell
|
||||
$shortcut = $wshell.CreateShortcut("$startMenuPath\Sa Polar - Panel.lnk")
|
||||
$shortcut.TargetPath = "$env:SystemRoot\System32\cmd.exe"
|
||||
$shortcut.Arguments = "/c start http://localhost:3000"
|
||||
$shortcut.Description = "Abrir panel de administración de Sa Polar"
|
||||
$shortcut.WorkingDirectory = $InstallDir
|
||||
$shortcut.Save()
|
||||
|
||||
# Acceso directo: Gestor de servicios
|
||||
$shortcut = $wshell.CreateShortcut("$startMenuPath\Sa Polar - Gestor de Servicios.lnk")
|
||||
$shortcut.TargetPath = $psExe
|
||||
$shortcut.Arguments = "-NoExit -ExecutionPolicy Bypass -File `"$manageServices`" -Action status"
|
||||
$shortcut.Description = "Gestionar servicios Docker de Sa Polar"
|
||||
$shortcut.WorkingDirectory = $InstallDir
|
||||
$shortcut.Save()
|
||||
|
||||
# Acceso directo: Desinstalar
|
||||
$shortcut = $wshell.CreateShortcut("$startMenuPath\Sa Polar - Desinstalar.lnk")
|
||||
$shortcut.TargetPath = $psExe
|
||||
$shortcut.Arguments = "-ExecutionPolicy Bypass -File `"$manageServices`""
|
||||
$shortcut.Description = "Desinstalar Sa Polar"
|
||||
$shortcut.WorkingDirectory = $InstallDir
|
||||
$shortcut.Save()
|
||||
|
||||
# Acceso directo escritorio
|
||||
if ($Desktop) {
|
||||
$shortcut = $wshell.CreateShortcut("$desktopPath\Sa Polar.lnk")
|
||||
$shortcut.TargetPath = "$env:SystemRoot\System32\cmd.exe"
|
||||
$shortcut.Arguments = "/c start http://localhost:3000"
|
||||
$shortcut.Description = "Abrir panel de administración de Sa Polar"
|
||||
$shortcut.WorkingDirectory = $InstallDir
|
||||
$shortcut.Save()
|
||||
}
|
||||
|
||||
Write-Host "Accesos directos creados correctamente."
|
||||
@@ -0,0 +1,42 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Instalador de Sa Polar - Script de post-instalación MSI
|
||||
.DESCRIPTION
|
||||
Configura el entorno después de la instalación de archivos:
|
||||
- Crea .env desde .env.example si no existe
|
||||
- Inicia contenedores Docker
|
||||
- Crea accesos directos (fallback)
|
||||
.NOTES
|
||||
Ejecutado por el MSI como acción personalizada
|
||||
#>
|
||||
|
||||
param(
|
||||
[string]$InstallDir = "$env:ProgramFiles\SaPolar"
|
||||
)
|
||||
|
||||
$COMPOSE_DIR = $InstallDir
|
||||
|
||||
# 1. Crear .env si no existe
|
||||
$envFile = Join-Path $COMPOSE_DIR ".env"
|
||||
$envExample = Join-Path $COMPOSE_DIR ".env.example"
|
||||
if ((Test-Path $envExample) -and -not (Test-Path $envFile)) {
|
||||
Copy-Item -Path $envExample -Destination $envFile
|
||||
Write-Host ".env creado desde .env.example"
|
||||
} elseif (Test-Path $envFile) {
|
||||
Write-Host ".env ya existe, se conserva"
|
||||
} else {
|
||||
Write-Host "ADVERTENCIA: No se encontró .env.example"
|
||||
}
|
||||
|
||||
# 2. Iniciar contenedores Docker
|
||||
Set-Location -LiteralPath $COMPOSE_DIR
|
||||
Write-Host "Iniciando contenedores Docker..."
|
||||
$result = docker compose up -d --remove-orphans 2>&1
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
Write-Host "Contenedores iniciados correctamente"
|
||||
} else {
|
||||
Write-Host "ADVERTENCIA: Error al iniciar contenedores."
|
||||
Write-Host "Puedes hacerlo manualmente con: manage-services.ps1 -Action start"
|
||||
}
|
||||
|
||||
exit 0
|
||||
@@ -0,0 +1,66 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Sa Polar - Gestor de Servicios
|
||||
.DESCRIPTION
|
||||
Permite gestionar los servicios Docker de Sa Polar:
|
||||
start, stop, restart, status, logs, rebuild
|
||||
.PARAMETER Action
|
||||
Acción a realizar: start, stop, restart, status, logs, rebuild
|
||||
.PARAMETER Service
|
||||
Servicio específico (opcional): mysql, backend, frontend
|
||||
#>
|
||||
|
||||
param(
|
||||
[Parameter(Mandatory = $true)]
|
||||
[ValidateSet("start", "stop", "restart", "status", "logs", "rebuild")]
|
||||
[string]$Action,
|
||||
[string]$Service = ""
|
||||
)
|
||||
|
||||
$COMPOSE_DIR = Split-Path -Parent $PSScriptRoot
|
||||
$COMPOSE_FILE = Join-Path $COMPOSE_DIR "docker-compose.yml"
|
||||
|
||||
if (-not (Test-Path $COMPOSE_FILE)) {
|
||||
Write-Error "docker-compose.yml no encontrado en $COMPOSE_DIR"
|
||||
exit 1
|
||||
}
|
||||
|
||||
Set-Location -LiteralPath $COMPOSE_DIR
|
||||
|
||||
switch ($Action) {
|
||||
"start" {
|
||||
Write-Host "Iniciando servicios..."
|
||||
if ($Service) { docker compose up -d $Service }
|
||||
else { docker compose up -d }
|
||||
}
|
||||
"stop" {
|
||||
Write-Host "Deteniendo servicios..."
|
||||
if ($Service) { docker compose stop $Service }
|
||||
else { docker compose down }
|
||||
}
|
||||
"restart" {
|
||||
Write-Host "Reiniciando servicios..."
|
||||
if ($Service) { docker compose restart $Service }
|
||||
else { docker compose restart }
|
||||
}
|
||||
"status" {
|
||||
docker compose ps
|
||||
}
|
||||
"logs" {
|
||||
if ($Service) { docker compose logs -f $Service }
|
||||
else { docker compose logs -f }
|
||||
}
|
||||
"rebuild" {
|
||||
Write-Warning "Reconstruyendo imágenes... Esto puede tomar varios minutos."
|
||||
$confirm = Read-Host "Continuar? (s/N)"
|
||||
if ($confirm -ne "s" -and $confirm -ne "S") { exit 0 }
|
||||
docker compose build --no-cache
|
||||
docker compose up -d
|
||||
}
|
||||
}
|
||||
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
Write-Host "Operación completada."
|
||||
} else {
|
||||
Write-Error "Error durante la operación."
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Sa Polar - Desinstalador (post-MSI)
|
||||
.DESCRIPTION
|
||||
Limpieza adicional después de la desinstalación MSI:
|
||||
- Detiene y elimina contenedores Docker
|
||||
- Elimina volúmenes Docker
|
||||
- Elimina tareas programadas
|
||||
.NOTES
|
||||
También se ejecuta como acción personalizada del MSI
|
||||
#>
|
||||
|
||||
param(
|
||||
[string]$InstallDir = "$env:ProgramFiles\SaPolar"
|
||||
)
|
||||
|
||||
Write-Host "=== Sa Polar - Desinstalación ==="
|
||||
Write-Host ""
|
||||
|
||||
# 1. Detener contenedores
|
||||
if (Test-Path $InstallDir) {
|
||||
Set-Location -LiteralPath $InstallDir
|
||||
Write-Host "Deteniendo contenedores Docker..."
|
||||
docker compose down -v 2>$null
|
||||
Write-Host "Contenedores detenidos y volúmenes eliminados."
|
||||
} else {
|
||||
Write-Host "Directorio de instalación no encontrado."
|
||||
}
|
||||
|
||||
# 2. Eliminar tarea programada
|
||||
$taskName = "Sa Polar Starter"
|
||||
$task = Get-ScheduledTask -TaskName $taskName -ErrorAction SilentlyContinue
|
||||
if ($task) {
|
||||
Unregister-ScheduledTask -TaskName $taskName -Confirm:$false
|
||||
Write-Host "Tarea programada eliminada."
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "Sa Polar ha sido desinstalado."
|
||||
exit 0
|
||||
Reference in New Issue
Block a user