mirror of
https://github.com/skoelle/marcer-gamedvd-launcher.git
synced 2026-09-17 18:50:25 +00:00
move all files
This commit is contained in:
@@ -41,18 +41,19 @@ jobs:
|
|||||||
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
|
working-directory: src/MarcerGameDvdLauncher
|
||||||
run: dotnet publish -c Release -r ${{ matrix.rid }} -p:Version=${{ steps.version.outputs.version }} --self-contained false
|
run: dotnet publish -c Release -r ${{ matrix.rid }} -p:Version=${{ steps.version.outputs.version }} --self-contained false
|
||||||
|
|
||||||
- name: Create ZIP (Windows)
|
- name: Create ZIP (Windows)
|
||||||
if: matrix.os == 'windows-latest'
|
if: matrix.os == 'windows-latest'
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
Compress-Archive -Path "MarcerGameDvdLauncher/bin/Release/net10.0/${{ matrix.rid }}/publish/*" -DestinationPath "MarcerGameDvdLauncher-v${{ steps.version.outputs.version }}-${{ matrix.artifact_name }}.zip"
|
Compress-Archive -Path "src/MarcerGameDvdLauncher/bin/Release/net10.0/${{ matrix.rid }}/publish/*" -DestinationPath "MarcerGameDvdLauncher-v${{ steps.version.outputs.version }}-${{ matrix.artifact_name }}.zip"
|
||||||
|
|
||||||
- name: Create ZIP (Linux/macOS)
|
- name: Create ZIP (Linux/macOS)
|
||||||
if: matrix.os != 'windows-latest'
|
if: matrix.os != 'windows-latest'
|
||||||
run: |
|
run: |
|
||||||
cd MarcerGameDvdLauncher/bin/Release/net10.0/${{ matrix.rid }}/publish
|
cd src/MarcerGameDvdLauncher/bin/Release/net10.0/${{ matrix.rid }}/publish
|
||||||
zip -r $GITHUB_WORKSPACE/MarcerGameDvdLauncher-v${{ steps.version.outputs.version }}-${{ matrix.artifact_name }}.zip .
|
zip -r $GITHUB_WORKSPACE/MarcerGameDvdLauncher-v${{ steps.version.outputs.version }}-${{ matrix.artifact_name }}.zip .
|
||||||
|
|
||||||
- name: Upload artifact
|
- name: Upload artifact
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ applyTo: '**'
|
|||||||
|
|
||||||
## Module Overview (Marcer GameDVD Launcher)
|
## Module Overview (Marcer GameDVD Launcher)
|
||||||
|
|
||||||
The implementation is split into focused modules (files) under the `MarcerGameDvdLauncher/` folder. Keep this section up to date when files are added, removed or responsibilities change.
|
The implementation is split into focused modules (files) under the `src/MarcerGameDvdLauncher/` folder. Keep this section up to date when files are added, removed or responsibilities change.
|
||||||
|
|
||||||
- MarcerGameDvdLauncher/Program.cs: Minimal entry point. Sets console title and starts the application by creating `LauncherApp`.
|
- MarcerGameDvdLauncher/Program.cs: Minimal entry point. Sets console title and starts the application by creating `LauncherApp`.
|
||||||
- MarcerGameDvdLauncher/LauncherApp.cs: Application lifecycle host — loads configuration, initializes components and runs the main directory navigation loop (contains `AppHost` internal class).
|
- MarcerGameDvdLauncher/LauncherApp.cs: Application lifecycle host — loads configuration, initializes components and runs the main directory navigation loop (contains `AppHost` internal class).
|
||||||
@@ -18,7 +18,7 @@ The implementation is split into focused modules (files) under the `MarcerGameDv
|
|||||||
|
|
||||||
Note: This overview is intentionally concise. For behavioral changes (navigation, color scheme, launch command or config schema), update this file (AGENTS.md) and README.md as required by project policy.
|
Note: This overview is intentionally concise. For behavioral changes (navigation, color scheme, launch command or config schema), update this file (AGENTS.md) and README.md as required by project policy.
|
||||||
**Note for Automated Tests/CI:**
|
**Note for Automated Tests/CI:**
|
||||||
The Launcher cannot be executed or tested via `start.cmd` from this environment (build system, automation agent) since no Windows console environment is present. For release workflows and developer validation, it is ALWAYS required to do a manual test run via start.cmd per documentation and policy before delivery.
|
The Launcher cannot be executed or tested via `scripts/start.cmd` from this environment (build system, automation agent) since no Windows console environment is present. For release workflows and developer validation, it is ALWAYS required to do a manual test run via scripts/start.cmd per documentation and policy before delivery.
|
||||||
|
|
||||||
**Release Process (automated via GitHub Actions):**
|
**Release Process (automated via GitHub Actions):**
|
||||||
- Pushing a tag (`v*`) triggers the GitHub Action workflow (`.github/workflows/release.yml`).
|
- Pushing a tag (`v*`) triggers the GitHub Action workflow (`.github/workflows/release.yml`).
|
||||||
@@ -35,7 +35,7 @@ Additional policy:
|
|||||||
- README.md must be written in English. Any functional change that affects usage, configuration, or behavior MUST update README.md in English immediately after the change. If there are consequential changes to developer-facing policies, build steps, or requirements, AGENTS.md must be updated as well.
|
- README.md must be written in English. Any functional change that affects usage, configuration, or behavior MUST update README.md in English immediately after the change. If there are consequential changes to developer-facing policies, build steps, or requirements, AGENTS.md must be updated as well.
|
||||||
|
|
||||||
Developer note: Visual Studio Solution
|
Developer note: Visual Studio Solution
|
||||||
- A Visual Studio solution file exists at the repository root: `marcer-gamedvd-launcher.sln`. Developers may open this solution in Visual Studio to work on the project, debug and build from the IDE. The solution references `MarcerGameDvdLauncher\MarcerGameDvdLauncher.csproj` and includes Debug and Release configurations. Use `build.cmd` (Windows) or `build.sh` (Linux) and `start.cmd` for consistent command-line builds/releases as described elsewhere in this document.
|
- A Visual Studio solution file exists at `src/marcer-gamedvd-launcher.sln`. Developers may open this solution in Visual Studio to work on the project, debug and build from the IDE. The solution references `MarcerGameDvdLauncher\MarcerGameDvdLauncher.csproj` and includes Debug and Release configurations. Use `scripts/build.cmd` (Windows) or `scripts/build.sh` (Linux) and `scripts/start.cmd` for consistent command-line builds/releases as described elsewhere in this document.
|
||||||
|
|
||||||
With this, it is ensured that binary/release files never end up in git, and the release process is always traceable and performed exclusively manually in the web interface.
|
With this, it is ensured that binary/release files never end up in git, and the release process is always traceable and performed exclusively manually in the web interface.
|
||||||
|
|
||||||
@@ -79,9 +79,9 @@ The console launcher is meant for browsing a games directory and can launch ZIP
|
|||||||
- Hatari.Executable is validated during startup: the path is resolved (relative to the EXE directory when applicable) and must point to an existing file. If validation fails the program must present a clear error and exit.
|
- Hatari.Executable is validated during startup: the path is resolved (relative to the EXE directory when applicable) and must point to an existing file. If validation fails the program must present a clear error and exit.
|
||||||
|
|
||||||
### Miscellaneous
|
### Miscellaneous
|
||||||
- Optional: Build and start scripts (build.cmd / build.sh / start.cmd) are present, adapt as needed.
|
- Optional: Build and start scripts (`scripts/build.cmd` / `scripts/build.sh` / `scripts/start.cmd` / `scripts/start.sh`) are present, adapt as needed.
|
||||||
- For ALL builds, tests, and releases, ONLY the platform build script may be used: `build.cmd` (Windows) or `build.sh` (Linux). Direct `dotnet build`/`dotnet run` calls are NOT allowed, as they can lead to version/runtime conflicts. The application must always be started and tested using `start.cmd`.
|
- For ALL builds, tests, and releases, ONLY the platform build script may be used: `scripts/build.cmd` (Windows) or `scripts/build.sh` (Linux). Direct `dotnet build`/`dotnet run` calls are NOT allowed, as they can lead to version/runtime conflicts. The application must always be started and tested using `scripts/start.cmd`.
|
||||||
- After making any code changes that affect behavior or touch source files, run the platform build script (`build.cmd` on Windows, `build.sh` on Linux) and ensure the build completes successfully before committing. Additionally, perform a manual functional test using `start.cmd` on a Windows machine prior to pushing a release.
|
- After making any code changes that affect behavior or touch source files, run the platform build script (`scripts/build.cmd` on Windows, `scripts/build.sh` on Linux) and ensure the build completes successfully before committing. Additionally, perform a manual functional test using `scripts/start.cmd` on a Windows machine prior to pushing a release.
|
||||||
- The console window can have any number of lines; display/navigation must adapt dynamically.
|
- The console window can have any number of lines; display/navigation must adapt dynamically.
|
||||||
- After each build for a release, the entire build output directory (`bin/Release/net10.0/`) must be zipped in the `release/` directory, and the ZIP must be uploaded as a release asset in Gitea.
|
- After each build for a release, the entire build output directory (`bin/Release/net10.0/`) must be zipped in the `release/` directory, and the ZIP must be uploaded as a release asset in Gitea.
|
||||||
- For every release, a Release Notes file must be maintained that summarizes all changes, bugfixes, and new features in that version; Release Notes must be provided with the release asset.
|
- For every release, a Release Notes file must be maintained that summarizes all changes, bugfixes, and new features in that version; Release Notes must be provided with the release asset.
|
||||||
|
|||||||
@@ -94,4 +94,4 @@ externe Anpassungsmöglichkeit dafür.
|
|||||||
## 4. Abschlusskriterien
|
## 4. Abschlusskriterien
|
||||||
|
|
||||||
- [ ] Commit mit aussagekräftiger Message (nur echter Autor, kein Co-Author).
|
- [ ] Commit mit aussagekräftiger Message (nur echter Autor, kein Co-Author).
|
||||||
- [ ] Nach Doku- und Code-Änderungen: `build.cmd` (Windows) bzw. `build.sh` (Linux) läuft fehlerfrei.
|
- [ ] Nach Doku- und Code-Änderungen: `scripts/build.cmd` (Windows) bzw. `scripts/build.sh` (Linux) läuft fehlerfrei.
|
||||||
|
|||||||
@@ -76,8 +76,8 @@ A performant, consistent console launcher for the Hatari emulator on Windows. Co
|
|||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
1. Edit `launcher.config.example.json` to set your `RootDirectory`, optional `PatchDirectory` and the `Hatari` settings, then copy it to `launcher.config.json` for local use. Relative paths are resolved against the EXE folder (build output).
|
1. Edit `launcher.config.example.json` to set your `RootDirectory`, optional `PatchDirectory` and the `Hatari` settings, then copy it to `launcher.config.json` for local use. Relative paths are resolved against the EXE folder (build output).
|
||||||
2. **Windows:** Build via `build.cmd`, start via `start.cmd`.
|
2. **Windows:** Build via `scripts/build.cmd`, start via `scripts/start.cmd`.
|
||||||
3. **Linux/macOS:** Build via `build.sh` (run `chmod +x build.sh` first to make it executable), start via `start.sh`.
|
3. **Linux/macOS:** Build via `scripts/build.sh` (run `chmod +x scripts/*.sh` first to make it executable), start via `scripts/start.sh`.
|
||||||
4. In the console, all subfolders and ZIPs in root (and recursively below) will be shown; other file types/hidden files are always ignored.
|
4. In the console, all subfolders and ZIPs in root (and recursively below) will be shown; other file types/hidden files are always ignored.
|
||||||
5. Complete navigation/control with arrow keys, Enter, Backspace, ESC, PgUp/PgDn, as described above.
|
5. Complete navigation/control with arrow keys, Enter, Backspace, ESC, PgUp/PgDn, as described above.
|
||||||
6. **IMPORTANT:** Navigation/scroll/backspace:
|
6. **IMPORTANT:** Navigation/scroll/backspace:
|
||||||
@@ -139,8 +139,8 @@ Releases are automated via GitHub Actions. When a tag matching `v*` is pushed, t
|
|||||||
4. The GitHub Action handles the rest.
|
4. The GitHub Action handles the rest.
|
||||||
|
|
||||||
**Local builds** (for development/testing):
|
**Local builds** (for development/testing):
|
||||||
- **Windows:** `build.cmd` to build, `start.cmd` to run
|
- **Windows:** `scripts/build.cmd` to build, `scripts/start.cmd` to run
|
||||||
- **Linux/macOS:** `build.sh` to build, `start.sh` to run (run `chmod +x *.sh` first)
|
- **Linux/macOS:** `scripts/build.sh` to build, `scripts/start.sh` to run (run `chmod +x scripts/*.sh` first)
|
||||||
|
|
||||||
## Community
|
## Community
|
||||||
|
|
||||||
|
|||||||
@@ -175,7 +175,7 @@ EOF
|
|||||||
echo "[OK] Config written to $CONFIG_FILE"
|
echo "[OK] Config written to $CONFIG_FILE"
|
||||||
|
|
||||||
# Copy config to EXE output directory (app looks for it there)
|
# Copy config to EXE output directory (app looks for it there)
|
||||||
EXE_DIR="$SCRIPT_DIR/MarcerGameDvdLauncher/bin/Release/net10.0"
|
EXE_DIR="$SCRIPT_DIR/src/MarcerGameDvdLauncher/bin/Release/net10.0"
|
||||||
cp "$CONFIG_FILE" "$EXE_DIR/launcher.config.json"
|
cp "$CONFIG_FILE" "$EXE_DIR/launcher.config.json"
|
||||||
echo "[OK] Config copied to $EXE_DIR"
|
echo "[OK] Config copied to $EXE_DIR"
|
||||||
|
|
||||||
@@ -186,4 +186,4 @@ echo "Controls: Arrow keys, Enter, Backspace, ESC to exit"
|
|||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
cd "$SCRIPT_DIR"
|
cd "$SCRIPT_DIR"
|
||||||
dotnet run --project MarcerGameDvdLauncher -c Release
|
dotnet run --project src/MarcerGameDvdLauncher -c Release
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ if errorlevel 1 (
|
|||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
|
|
||||||
REM Im aktuellen Ordner (wo build.cmd liegt) bauen
|
REM Im src-Ordner bauen (build.cmd liegt in scripts/)
|
||||||
cd /d %~dp0
|
cd /d %~dp0
|
||||||
cd MarcerGameDvdLauncher
|
cd ..\src\MarcerGameDvdLauncher
|
||||||
|
|
||||||
dotnet build -c Release
|
dotnet build -c Release
|
||||||
if errorlevel 1 (
|
if errorlevel 1 (
|
||||||
@@ -8,11 +8,9 @@ if ! command -v dotnet &> /dev/null; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Build in current directory (where build.sh is located)
|
# Build in MarcerGameDvdLauncher subdirectory (script is in scripts/, code in src/)
|
||||||
cd "$(dirname "$0")"
|
cd "$(dirname "$0")"
|
||||||
|
cd "../src/MarcerGameDvdLauncher"
|
||||||
# Change to MarcerGameDvdLauncher subdirectory
|
|
||||||
cd "MarcerGameDvdLauncher"
|
|
||||||
|
|
||||||
dotnet build -c Release
|
dotnet build -c Release
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
@echo off
|
||||||
|
|
||||||
|
REM Starts MarcerGameDvdLauncher.exe (script is in scripts/, code in src/)
|
||||||
|
setlocal
|
||||||
|
set EXE_PATH=%~dp0..\src\MarcerGameDvdLauncher\bin\Release\net10.0\MarcerGameDvdLauncher.exe
|
||||||
|
|
||||||
|
if not exist "%EXE_PATH%" (
|
||||||
|
echo [ERROR] Application not built. Please run build.cmd first.
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
pushd "%~dp0..\src\MarcerGameDvdLauncher\bin\Release\net10.0"
|
||||||
|
"MarcerGameDvdLauncher.exe"
|
||||||
|
popd
|
||||||
Executable
+13
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Starts MarcerGameDvdLauncher (script is in scripts/, code in src/)
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
EXE_PATH="$SCRIPT_DIR/../src/MarcerGameDvdLauncher/bin/Release/net10.0/MarcerGameDvdLauncher"
|
||||||
|
|
||||||
|
if [ ! -f "$EXE_PATH" ]; then
|
||||||
|
echo "[ERROR] Application not built. Please run build.sh first."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "$SCRIPT_DIR/../src/MarcerGameDvdLauncher/bin/Release/net10.0"
|
||||||
|
./MarcerGameDvdLauncher
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
@echo off
|
|
||||||
|
|
||||||
REM Starts MarcerGameDvdLauncher.exe from the correct folder
|
|
||||||
setlocal
|
|
||||||
set EXE_PATH=%~dp0MarcerGameDvdLauncher\bin\Release\net10.0\MarcerGameDvdLauncher.exe
|
|
||||||
|
|
||||||
if not exist "%EXE_PATH%" (
|
|
||||||
echo [ERROR] Application not built. Please run build.cmd first.
|
|
||||||
exit /b 1
|
|
||||||
)
|
|
||||||
|
|
||||||
pushd "MarcerGameDvdLauncher\bin\Release\net10.0"
|
|
||||||
"MarcerGameDvdLauncher.exe"
|
|
||||||
popd
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Starts MarcerGameDvdLauncher from the correct folder
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
||||||
EXE_PATH="$SCRIPT_DIR/MarcerGameDvdLauncher/bin/Release/net10.0/MarcerGameDvdLauncher"
|
|
||||||
|
|
||||||
if [ ! -f "$EXE_PATH" ]; then
|
|
||||||
echo "[ERROR] Application not built. Please run build.sh first."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd "$SCRIPT_DIR/MarcerGameDvdLauncher/bin/Release/net10.0"
|
|
||||||
./MarcerGameDvdLauncher
|
|
||||||
Reference in New Issue
Block a user