feat: initial commit - cybercore signer desktop agent

This commit is contained in:
Claudecio Martins
2026-10-11 08:20:24 -03:00
commit ccfa358f97
206 changed files with 23952 additions and 0 deletions
+69
View File
@@ -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}"
+45
View File
@@ -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%