feat: initial commit - cybercore signer desktop agent
This commit is contained in:
Executable
+69
@@ -0,0 +1,69 @@
|
||||
#!/usr/bin/env bash
|
||||
# ==============================================================================
|
||||
# CyberCore Signer — Script de Empacotamento Nativo com jpackage
|
||||
# Gera runtime autocontido e instalador sem exigir Java instalado pelo usuário.
|
||||
# ==============================================================================
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
||||
|
||||
echo "==> [1/3] Compilando projeto e gerando Fat JAR via Maven..."
|
||||
cd "${PROJECT_ROOT}"
|
||||
|
||||
if [ -n "${JAVA_HOME:-}" ]; then
|
||||
MVN_CMD="${PROJECT_ROOT}/mvnw"
|
||||
else
|
||||
export JAVA_HOME="/home/claudecio/.jdks/jdk-25.0.4.1+1"
|
||||
export PATH="${JAVA_HOME}/bin:${PATH}"
|
||||
MVN_CMD="${PROJECT_ROOT}/mvnw"
|
||||
fi
|
||||
|
||||
${MVN_CMD} clean package -DskipTests
|
||||
|
||||
if [ -f "${PROJECT_ROOT}/modules/cybercore-app/target/cybercore-app-0.1.0-SNAPSHOT-shaded.jar" ]; then
|
||||
cp "${PROJECT_ROOT}/modules/cybercore-app/target/cybercore-app-0.1.0-SNAPSHOT-shaded.jar" "${PROJECT_ROOT}/modules/cybercore-app/target/cybercore-signer.jar"
|
||||
fi
|
||||
|
||||
FAT_JAR="${PROJECT_ROOT}/modules/cybercore-app/target/cybercore-signer.jar"
|
||||
if [ ! -f "${FAT_JAR}" ]; then
|
||||
echo "ERRO: JAR final não encontrado em ${FAT_JAR}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DIST_DIR="${PROJECT_ROOT}/dist"
|
||||
mkdir -p "${DIST_DIR}"
|
||||
|
||||
APP_VERSION="0.1.0"
|
||||
APP_NAME="CyberCore-Signer"
|
||||
|
||||
echo "==> [2/3] Verificando ferramenta jpackage..."
|
||||
JPACKAGE="${JAVA_HOME}/bin/jpackage"
|
||||
if [ ! -x "${JPACKAGE}" ]; then
|
||||
echo "ERRO: jpackage não encontrado em ${JPACKAGE}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "==> [3/3] Executando jpackage para criar imagem de aplicação nativa com runtime próprio..."
|
||||
# No ambiente Linux em CI ou desenvolvimento, gera app-image nativa.
|
||||
# Em runners Windows, substitua o tipo por 'msi' ou 'exe'.
|
||||
TARGET_TYPE="app-image"
|
||||
if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "win32" ]]; then
|
||||
TARGET_TYPE="msi"
|
||||
fi
|
||||
|
||||
"${JPACKAGE}" \
|
||||
--name "${APP_NAME}" \
|
||||
--app-version "${APP_VERSION}" \
|
||||
--input "${PROJECT_ROOT}/modules/cybercore-app/target" \
|
||||
--main-jar "cybercore-signer.jar" \
|
||||
--main-class "br.com.cybercore.signer.app.CyberCoreSignerApplication" \
|
||||
--type "${TARGET_TYPE}" \
|
||||
--dest "${DIST_DIR}" \
|
||||
--java-options "-Xms64m -Xmx256m --enable-native-access=ALL-UNNAMED" \
|
||||
--add-modules java.base,java.desktop,java.net.http,java.smartcardio,jdk.crypto.cryptoki,jdk.unsupported \
|
||||
--vendor "CyberCore" \
|
||||
--description "Agente desktop de assinatura digital (A1/A3) ICP-Brasil"
|
||||
|
||||
echo "==> Empacotamento concluído com sucesso em: ${DIST_DIR}/${APP_NAME}"
|
||||
@@ -0,0 +1,45 @@
|
||||
@echo off
|
||||
rem ==============================================================================
|
||||
rem CyberCore Signer — Script de Empacotamento Windows (MSI / EXE) com jpackage
|
||||
rem ==============================================================================
|
||||
|
||||
echo [1/3] Compilando CyberCore Signer via Maven...
|
||||
call mvnw.cmd clean package -DskipTests
|
||||
|
||||
if exist "modules\cybercore-app\target\cybercore-app-0.1.0-SNAPSHOT-shaded.jar" (
|
||||
copy "modules\cybercore-app\target\cybercore-app-0.1.0-SNAPSHOT-shaded.jar" "modules\cybercore-app\target\cybercore-signer.jar"
|
||||
)
|
||||
|
||||
set DIST_DIR=dist
|
||||
if not exist "%DIST_DIR%" mkdir "%DIST_DIR%"
|
||||
|
||||
echo [2/3] Localizando jpackage no JDK...
|
||||
if "%JAVA_HOME%"=="" (
|
||||
echo ERRO: Variavel JAVA_HOME nao definida.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
set JPACKAGE="%JAVA_HOME%\bin\jpackage.exe"
|
||||
if not exist %JPACKAGE% (
|
||||
echo ERRO: jpackage.exe nao encontrado em %JAVA_HOME%\bin.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo [3/3] Gerando instalador MSI Windows com runtime autocontido...
|
||||
%JPACKAGE% ^
|
||||
--name "CyberCore Signer" ^
|
||||
--app-version "0.1.0" ^
|
||||
--input "modules\cybercore-app\target" ^
|
||||
--main-jar "cybercore-signer.jar" ^
|
||||
--main-class "br.com.cybercore.signer.app.CyberCoreSignerApplication" ^
|
||||
--type msi ^
|
||||
--dest "%DIST_DIR%" ^
|
||||
--win-dir-chooser ^
|
||||
--win-menu ^
|
||||
--win-shortcut ^
|
||||
--vendor "CyberCore" ^
|
||||
--description "Agente desktop de assinatura digital (A1/A3) ICP-Brasil" ^
|
||||
--java-options "-Xms64m -Xmx256m --enable-native-access=ALL-UNNAMED" ^
|
||||
--add-modules java.base,java.desktop,java.net.http,java.smartcardio,jdk.crypto.cryptoki,jdk.crypto.mscapi,jdk.unsupported
|
||||
|
||||
echo Concluido! Instalador gerado em %DIST_DIR%
|
||||
Reference in New Issue
Block a user