From 272104aafb431d4be7e0a87a2d584f7163bcbd05 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 17 Apr 2026 19:15:11 +0000 Subject: [PATCH 1/7] Initial plan From 30cce4ab1d8eae47619d22876623b40958ae8067 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 17 Apr 2026 19:19:54 +0000 Subject: [PATCH 2/7] feat: add bundled welcome project docs and startup installer Agent-Logs-Url: https://github.com/mcgivrer/MarkNote/sessions/2e439cd4-0051-4dec-a597-0d60e17ca76e Co-authored-by: mcgivrer <216852+mcgivrer@users.noreply.github.com> --- pom.xml | 33 ++++++++ src/docs/packaging.md | 2 + src/docs/tips-and-tricks-en.md | 31 +++++++ src/main/java/MarkNote.java | 3 + .../java/utils/WelcomeProjectService.java | 82 +++++++++++++++++++ .../java/utils/WelcomeProjectServiceTest.java | 46 +++++++++++ 6 files changed, 197 insertions(+) create mode 100644 src/docs/tips-and-tricks-en.md create mode 100644 src/main/java/utils/WelcomeProjectService.java create mode 100644 src/test/java/utils/WelcomeProjectServiceTest.java diff --git a/pom.xml b/pom.xml index de110f0..7bb2c71 100644 --- a/pom.xml +++ b/pom.xml @@ -222,6 +222,39 @@ + + + org.apache.maven.plugins + maven-resources-plugin + 3.3.1 + + + copy-welcome-project + process-resources + copy-resources + + ${project.build.outputDirectory}/welcome-project + + + ${project.basedir}/src/docs + + user-guide-en.md + tips-and-tricks-en.md + + + + ${project.basedir}/src/docs/illustrations + illustrations + + **/* + + + + + + + + ${project.build.directory}/build @@ -546,7 +547,7 @@ - -Djava.net.preferIPv6Addresses=true + -Xmx512m @@ -568,15 +569,34 @@ Utility Utility marknote + + ${project.basedir}/src/packaging/linux-resources ${jpackage.bundle.id} ${project.name} + ${jpackage.win.dir.chooser} ${jpackage.win.menu} ${jpackage.win.shortcut} + diff --git a/src/packaging/linux-resources/template.postinst b/src/packaging/linux-resources/template.postinst new file mode 100644 index 0000000..44d455c --- /dev/null +++ b/src/packaging/linux-resources/template.postinst @@ -0,0 +1,58 @@ +#!/bin/sh +# postinst script for APPLICATION_PACKAGE +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-remove' +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see https://www.debian.org/doc/debian-policy/ or +# the debian-policy package + +package_type=deb +LAUNCHER_AS_SERVICE_SCRIPTS + +case "$1" in + configure) +DESKTOP_COMMANDS_INSTALL +LAUNCHER_AS_SERVICE_COMMANDS_INSTALL + + # ── Copier les fichiers de bienvenue ────────────────────────── + INSTALL_DIR=/opt/marknote + JAR_FILE="$INSTALL_DIR/lib/MarkNote.jar" + # Copie dans le dossier Documents de tous les utilisateurs existants + for USER_HOME in /home/*/; do + TARGET_DIR="$USER_HOME/Documents/MarkNote Welcome" + if [ -f "$JAR_FILE" ]; then + mkdir -p "$TARGET_DIR" + unzip -q -o "$JAR_FILE" "welcome-project/*" -d /tmp/marknote-welcome-extract 2>/dev/null || true + if [ -d /tmp/marknote-welcome-extract/welcome-project ]; then + cp -r /tmp/marknote-welcome-extract/welcome-project/. "$TARGET_DIR/" + rm -rf /tmp/marknote-welcome-extract + fi + # Donner les droits au propriétaire du dossier home + USER_NAME=$(basename "$USER_HOME") + chown -R "$USER_NAME:$USER_NAME" "$TARGET_DIR" 2>/dev/null || true + fi + done + # ───────────────────────────────────────────────────────────── + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/src/packaging/post-install-mac.sh b/src/packaging/post-install-mac.sh new file mode 100755 index 0000000..24f1d40 --- /dev/null +++ b/src/packaging/post-install-mac.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +# Script post-installation pour macOS +# Copie les fichiers de bienvenue dans le dossier Documents de l'utilisateur + +set -e + +# Chemin vers le JAR installé (à ajuster selon l'emplacement d'installation) +INSTALL_DIR="/Applications/MarkNote.app/Contents/Java" +JAR_FILE="$INSTALL_DIR/MarkNote.jar" + +# Dossier de destination pour les fichiers de bienvenue +TARGET_DIR="$HOME/Documents/MarkNote Welcome" + +# Créer le dossier de destination s'il n'existe pas +mkdir -p "$TARGET_DIR" + +# Extraire les fichiers de bienvenue du JAR +if [ -f "$JAR_FILE" ]; then + echo "Extraction des fichiers de bienvenue..." + unzip -q -o "$JAR_FILE" "welcome-project/*" -d "$TARGET_DIR" + + # Supprimer le dossier welcome-project temporaire + if [ -d "$TARGET_DIR/welcome-project" ]; then + mv "$TARGET_DIR/welcome-project"/* "$TARGET_DIR/" + rmdir "$TARGET_DIR/welcome-project" + fi + + echo "Fichiers de bienvenue installés dans $TARGET_DIR" +else + echo "Erreur: JAR non trouvé à $JAR_FILE" >&2 + exit 1 +fi + +exit 0 \ No newline at end of file diff --git a/src/packaging/post-install.bat b/src/packaging/post-install.bat new file mode 100644 index 0000000..99d505d --- /dev/null +++ b/src/packaging/post-install.bat @@ -0,0 +1,40 @@ +@echo off + +:: Script post-installation pour Windows +:: Copie les fichiers de bienvenue dans le dossier Documents de l'utilisateur + +setlocal enabledelayedexpansion + +:: Chemin vers le JAR installé (à ajuster selon l'emplacement d'installation) +set "INSTALL_DIR=C:\Program Files\MarkNote" +set "JAR_FILE=%INSTALL_DIR%\lib\MarkNote.jar" + +:: Dossier de destination pour les fichiers de bienvenue +set "TARGET_DIR=%USERPROFILE%\Documents\MarkNote Welcome" + +:: Créer le dossier de destination s'il n'existe pas +if not exist "!TARGET_DIR!" ( + mkdir "!TARGET_DIR!" +) + +:: Vérifier si le JAR existe +if exist "!JAR_FILE!" ( + echo Extraction des fichiers de bienvenue... + + :: Extraire les fichiers de bienvenue du JAR + jar -xf "!JAR_FILE!" "welcome-project/" -C "!TARGET_DIR!" + + :: Déplacer les fichiers du sous-dossier welcome-project + if exist "!TARGET_DIR!\welcome-project" ( + move /Y "!TARGET_DIR!\welcome-project\*" "!TARGET_DIR!\" >nul + rmdir "!TARGET_DIR!\welcome-project" + ) + + echo Fichiers de bienvenue installés dans !TARGET_DIR! +) else ( + echo Erreur: JAR non trouvé à !JAR_FILE! + exit /b 1 +) + +endlocal +exit /b 0 \ No newline at end of file diff --git a/src/packaging/post-install.sh b/src/packaging/post-install.sh new file mode 100755 index 0000000..675f255 --- /dev/null +++ b/src/packaging/post-install.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +# Script post-installation pour copier les fichiers de bienvenue +# Ce script est exécuté après l'installation du package Debian + +set -e + +# Chemin vers le JAR installé (à ajuster selon l'emplacement d'installation) +INSTALL_DIR=/opt/MarkNote +JAR_FILE=$INSTALL_DIR/lib/MarkNote.jar + +# Dossier de destination pour les fichiers de bienvenue +TARGET_DIR=$HOME/Documents/MarkNote Welcome + +# Créer le dossier de destination s'il n'existe pas +mkdir -p "$TARGET_DIR" + +# Extraire les fichiers de bienvenue du JAR +if [ -f "$JAR_FILE" ]; then + echo "Extraction des fichiers de bienvenue..." + unzip -q -o "$JAR_FILE" "welcome-project/*" -d "$TARGET_DIR" + + # Supprimer le dossier welcome-project temporaire + if [ -d "$TARGET_DIR/welcome-project" ]; then + mv "$TARGET_DIR/welcome-project"/* "$TARGET_DIR/" + rmdir "$TARGET_DIR/welcome-project" + fi + + echo "Fichiers de bienvenue installés dans $TARGET_DIR" +else + echo "Erreur: JAR non trouvé à $JAR_FILE" >&2 + exit 1 +fi + +exit 0 \ No newline at end of file