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