; ============================================================ ; Instalador de Utilerias RECON 2 ; Empaqueta dist\UtileriasReconV2\ en un instalador .exe unico. ; Requiere Inno Setup 6+: https://jrsoftware.org/isdl.php ; ============================================================ #define MyAppName "Utilerias RECON 2" #define MyAppVersion "1.0.0" #define MyAppPublisher "Tecma / CurtManufacturing" #define MyAppExeName "UtileriasReconV2.exe" [Setup] AppId={{B3F1A7A8-4D2E-4A6B-9C5A-2C0D1F8E9A11} AppName={#MyAppName} AppVersion={#MyAppVersion} AppPublisher={#MyAppPublisher} DefaultDirName={autopf}\UtileriasReconV2 DefaultGroupName={#MyAppName} DisableProgramGroupPage=yes OutputDir=installer_output OutputBaseFilename=UtileriasReconV2_Setup_{#MyAppVersion} Compression=lzma2/ultra64 SolidCompression=yes ArchitecturesAllowed=x64compatible ArchitecturesInstallIn64BitMode=x64compatible PrivilegesRequired=lowest PrivilegesRequiredOverridesAllowed=dialog WizardStyle=modern UninstallDisplayIcon={app}\{#MyAppExeName} [Languages] Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl" [Tasks] Name: "desktopicon"; Description: "Crear acceso directo en el escritorio"; GroupDescription: "Iconos adicionales:" [Files] ; Empaqueta TODA la carpeta dist\UtileriasReconV2\ generada por PyInstaller. ; Excluimos *.map (source maps de JS, solo para debug del browser, no se usan) ; porque tienen nombres absurdamente largos y rompen la compresion. Source: "dist\UtileriasReconV2\*"; DestDir: "{app}"; Excludes: "*.map"; Flags: ignoreversion recursesubdirs createallsubdirs ; Plantilla .env (el usuario la copia como .env y edita) Source: "..\.env.example"; DestDir: "{app}"; Flags: ignoreversion [Icons] Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" Name: "{group}\Editar configuracion (.env)"; Filename: "notepad.exe"; Parameters: """{app}\.env""" Name: "{group}\Desinstalar {#MyAppName}"; Filename: "{uninstallexe}" Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon [Run] Filename: "{app}\{#MyAppExeName}"; Description: "Ejecutar {#MyAppName} ahora"; Flags: nowait postinstall skipifsilent [Code] // Si no existe .env, copia .env.example como .env tras instalar procedure CurStepChanged(CurStep: TSetupStep); var EnvFile, EnvExample: string; begin if CurStep = ssPostInstall then begin EnvFile := ExpandConstant('{app}\.env'); EnvExample := ExpandConstant('{app}\.env.example'); if (not FileExists(EnvFile)) and FileExists(EnvExample) then CopyFile(EnvExample, EnvFile, False); end; end;