48 Commits

Author SHA1 Message Date
gitea-actions[bot]
d175e6de26 chore: sync omninx_pack to 1.0.0-b7 from OmniNX VERSION [skip ci] 2026-03-31 12:07:41 +00:00
gitea-actions[bot]
a533edc2ba chore: sync omninx_pack to 1.0.0-b7-1 from OmniNX VERSION [skip ci] 2026-03-31 12:05:26 +00:00
GitHub Action
3e6d324979 chore: update INI section versions [skip ci] 2026-03-31 00:01:00 +00:00
7619b6c886 OmniNX: Version bump to 1.0.0-b7
All checks were successful
Build and Release / build-and-release (push) Successful in 13s
Generate Release Files / generate-releases (push) Successful in 42s
2026-03-31 00:17:44 +02:00
GitHub Action
1bbf038ad4 chore: update INI section versions [skip ci] 2026-03-30 00:01:00 +00:00
GitHub Action
ee359257e8 chore: update INI section versions [skip ci] 2026-03-29 00:01:00 +00:00
0e3a114657 Update OmniNX Release Version to 1.0.0-b6
All checks were successful
Build and Release / build-and-release (push) Successful in 13s
Generate Release Files / generate-releases (push) Successful in 41s
2026-03-28 20:59:03 +01:00
GitHub Action
759a542be8 chore: update INI section versions [skip ci] 2026-03-27 00:00:59 +00:00
GitHub Action
6f160a3527 chore: update INI section versions [skip ci] 2026-03-26 00:01:00 +00:00
GitHub Action
5164af3178 chore: update INI section versions [skip ci] 2026-03-24 00:01:00 +00:00
GitHub Action
84abfb3a32 chore: update INI section versions [skip ci] 2026-03-20 00:00:59 +00:00
GitHub Action
234668ea2c chore: update INI section versions [skip ci] 2026-03-19 00:01:00 +00:00
GitHub Action
085e9810dd chore: update INI section versions [skip ci] 2026-03-18 00:01:01 +00:00
GitHub Action
d47a640108 chore: update INI section versions [skip ci] 2026-03-17 00:01:00 +00:00
GitHub Action
44711ff6f4 chore: update INI section versions [skip ci] 2026-03-16 00:01:01 +00:00
GitHub Action
f0cd2b79a8 chore: update INI section versions [skip ci] 2026-03-15 00:00:57 +00:00
GitHub Action
7f6b118078 chore: update INI section versions [skip ci] 2026-03-14 00:01:18 +00:00
1cf3dda353 include/updater/RELEASE.ini aktualisiert
All checks were successful
Build and Release / build-and-release (push) Successful in 10s
Generate Release Files / generate-releases (push) Successful in 1m0s
2026-03-07 00:00:31 +01:00
GitHub Action
5110828131 chore: update INI section versions [skip ci] 2026-03-06 21:24:36 +00:00
GitHub Action
be5c83453f chore: update INI section versions [skip ci] 2026-03-03 00:00:42 +00:00
f9806e1561 include/updater/RELEASE.ini aktualisiert
All checks were successful
Build and Release / build-and-release (push) Successful in 11s
Generate Release Files / generate-releases (push) Successful in 41s
2026-03-01 15:20:21 +01:00
8414885659 Remove show_widget attribute from ini files
All checks were successful
Build and Release / build-and-release (push) Successful in 10s
Made-with: Cursor
2026-03-01 15:01:30 +01:00
GitHub Action
01d2bf46fc chore: update INI section versions [skip ci] 2026-02-25 00:00:40 +00:00
GitHub Action
3ac1b6a3a8 chore: update INI section versions [skip ci] 2026-02-24 00:00:42 +00:00
5da087b391 Pack Version bump to 1.0.0-b3
All checks were successful
Build and Release / build-and-release (push) Successful in 9s
Generate Release Files / generate-releases (push) Successful in 40s
2026-02-22 23:12:44 +01:00
170759c063 Added mGBA to emulators
All checks were successful
Build and Release / build-and-release (push) Successful in 11s
2026-02-22 23:00:08 +01:00
GitHub Action
7984a41bda chore: update INI section versions [skip ci] 2026-02-22 00:00:39 +00:00
3a69140bd3 Fix Goldleaf and linkalho download formats in apps.ini
All checks were successful
Build and Release / build-and-release (push) Successful in 11s
Generate Release Files / generate-releases (push) Successful in 37s
2026-02-17 20:20:04 +01:00
GitHub Action
5e03eb3455 chore: update INI section versions [skip ci] 2026-02-17 00:00:39 +00:00
GitHub Action
fa4dd6f4de chore: update INI section versions [skip ci] 2026-02-15 00:00:39 +00:00
3aa1cd1b11 Updated workflow
All checks were successful
Build and Release / build-and-release (push) Successful in 9s
Generate Release Files / generate-releases (push) Successful in 38s
2026-02-15 00:27:19 +01:00
5229fa8274 Updated workflow
All checks were successful
Build and Release / build-and-release (push) Successful in 9s
2026-02-15 00:26:05 +01:00
1a7d03cb19 Updated workflow and current
All checks were successful
Build and Release / build-and-release (push) Successful in 11s
2026-02-15 00:24:38 +01:00
6c58601db8 Version bumped main 1.0.0-b2 2026-02-15 00:20:53 +01:00
f37cb9e23a Version bump to 1.0.0-b2 2026-02-15 00:19:29 +01:00
effe5c2dac Fixed emuiibo extraction
All checks were successful
Generate Release Files / generate-releases (push) Successful in 38s
2026-02-13 22:03:31 +01:00
GitHub Action
a643c9ca40 chore: update INI section versions [skip ci] 2026-02-11 15:26:23 +00:00
2f84cf11ea Updated NX-Activity-Log Repo 2026-02-11 16:25:26 +01:00
69d3107c26 Added NX in advanced section 2026-02-11 16:01:18 +01:00
6894ba4601 Fixed missmatched INI link
All checks were successful
Generate Release Files / generate-releases (push) Successful in 39s
2026-02-10 17:29:45 +01:00
90002e2273 bugfixed boot files
Quoted the Paths, otherwise it didn't work
2026-02-10 17:10:39 +01:00
650eebdc3a Fixed boot files 2026-02-10 16:44:54 +01:00
7dfdfa0462 Removed RELEASE_XXX format
footer writing has been replaced with the version being in the INI sections themselves
2026-02-10 16:38:44 +01:00
7995cc5d94 include/apps/apps.ini aktualisiert
All checks were successful
Generate Release Files / generate-releases (push) Successful in 39s
2026-02-08 17:19:19 +01:00
d695f43a22 Fix NXThemeinstaller Download 2026-02-08 17:15:40 +01:00
6409e06f1b include/apps/apps.ini aktualisiert
Fix NXThemesInstaller
2026-02-08 16:57:46 +01:00
2273195dec include/apps/apps.ini aktualisiert 2026-02-08 16:53:35 +01:00
GitHub Action
d1bf5997ce chore: update release files [skip ci] 2026-02-07 09:34:32 +00:00
25 changed files with 194 additions and 497 deletions

View File

@@ -2,138 +2,39 @@ name: Build and Release
on:
push:
tags:
- '[0-9]+.[0-9]+.[0-9]+*' # Trigger on version tags like 1.0.0
workflow_dispatch: # Allow manual trigger
inputs:
hotfix:
description: 'Hotfix mode - update latest release instead of creating new one'
required: false
type: boolean
default: false
jobs:
build-and-release:
runs-on: ubuntu-latest
permissions:
contents: write # Required to create releases
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Make
- name: Set up build tools
run: |
# Make is pre-installed on Ubuntu, but ensure zip is available
sudo apt-get update
sudo apt-get install -y zip rsync
- name: Verify GitHub CLI
if: steps.get_version.outputs.hotfix == 'true'
run: |
gh --version || echo "GitHub CLI not available"
- name: Build zip package
run: make zip
- name: Get version from tag or use default
id: get_version
run: |
if [ "${{ inputs.hotfix }}" = "true" ]; then
echo "mode=hotfix" >> $GITHUB_OUTPUT
echo "hotfix=true" >> $GITHUB_OUTPUT
elif [ "${{ github.ref_type }}" = "tag" ]; then
VERSION="${{ github.ref_name }}"
IS_PRERELEASE="false"
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "tag_name=$VERSION" >> $GITHUB_OUTPUT
echo "prerelease=$IS_PRERELEASE" >> $GITHUB_OUTPUT
echo "hotfix=false" >> $GITHUB_OUTPUT
else
VERSION="dev-$(date +'%Y%m%d-%H%M%S')-${GITHUB_SHA::8}"
IS_PRERELEASE="true"
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "tag_name=$VERSION" >> $GITHUB_OUTPUT
echo "prerelease=$IS_PRERELEASE" >> $GITHUB_OUTPUT
echo "hotfix=false" >> $GITHUB_OUTPUT
fi
- name: Get latest release for hotfix
if: steps.get_version.outputs.hotfix == 'true'
id: get_latest_release
run: |
# Get the latest release (non-draft, non-prerelease)
LATEST_RELEASE=$(gh api repos/${{ github.repository }}/releases/latest --jq '.tag_name' 2>/dev/null || echo "")
if [ -z "$LATEST_RELEASE" ]; then
echo "Error: No latest release found. Cannot perform hotfix."
exit 1
fi
RELEASE_ID=$(gh api repos/${{ github.repository }}/releases/latest --jq '.id')
echo "tag_name=$LATEST_RELEASE" >> $GITHUB_OUTPUT
echo "release_id=$RELEASE_ID" >> $GITHUB_OUTPUT
echo "Latest release: $LATEST_RELEASE (ID: $RELEASE_ID)"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Delete existing asset if hotfix
if: steps.get_version.outputs.hotfix == 'true'
run: |
ASSET_ID=$(gh api repos/${{ github.repository }}/releases/${{ steps.get_latest_release.outputs.release_id }}/assets --jq '.[] | select(.name == "OmniNX Downloader.zip") | .id' || echo "")
if [ -n "$ASSET_ID" ]; then
echo "Deleting existing asset (ID: $ASSET_ID)"
gh api repos/${{ github.repository }}/releases/assets/$ASSET_ID -X DELETE
echo "Waiting for asset deletion to complete..."
sleep 2
else
echo "No existing asset found"
fi
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Prepare release info
id: release_info
run: |
if [ "${{ inputs.hotfix }}" = "true" ]; then
echo "release_name=Release ${{ steps.get_latest_release.outputs.tag_name }} (Hotfix Update)" >> $GITHUB_OUTPUT
RELEASE_BODY="**HOTFIX UPDATE** - Updated existing release"
echo "release_body<<EOF" >> $GITHUB_OUTPUT
echo "$RELEASE_BODY" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
echo "release_tag=${{ steps.get_latest_release.outputs.tag_name }}" >> $GITHUB_OUTPUT
echo "is_prerelease=false" >> $GITHUB_OUTPUT
else
echo "release_name=Release ${{ steps.get_version.outputs.version }}" >> $GITHUB_OUTPUT
RELEASE_BODY="Automated build of OmniNX Downloader"
echo "release_body<<EOF" >> $GITHUB_OUTPUT
echo "$RELEASE_BODY" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
echo "release_tag=${{ steps.get_version.outputs.tag_name }}" >> $GITHUB_OUTPUT
echo "is_prerelease=${{ steps.get_version.outputs.prerelease }}" >> $GITHUB_OUTPUT
fi
- name: Create or Update Release (Normal Mode)
if: steps.get_version.outputs.hotfix != 'true'
- name: Get version
id: version
run: echo "tag_name=dev-$(date +'%Y%m%d-%H%M%S')-${GITHUB_SHA::8}" >> $GITHUB_OUTPUT
- name: Create dev release
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ steps.release_info.outputs.release_tag }}
name: ${{ steps.release_info.outputs.release_name }}
body: ${{ steps.release_info.outputs.release_body }}
tag_name: ${{ steps.version.outputs.tag_name }}
name: Release ${{ steps.version.outputs.tag_name }}
body: |
Automated dev build of OmniNX Downloader
Commit: ${{ github.sha }}
Branch: ${{ github.ref_name }}
draft: false
prerelease: ${{ steps.release_info.outputs.is_prerelease == 'true' }}
prerelease: true
files: ./output/OmniNX Downloader.zip
- name: Update Release (Hotfix Mode)
if: steps.get_version.outputs.hotfix == 'true'
run: |
# Update release body
gh release edit ${{ steps.get_latest_release.outputs.tag_name }} \
--title "${{ steps.release_info.outputs.release_name }}" \
--notes "${{ steps.release_info.outputs.release_body }}"
# Upload new asset
gh release upload ${{ steps.get_latest_release.outputs.tag_name }} \
"./output/OmniNX Downloader.zip" \
--clobber
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -22,7 +22,7 @@ jobs:
with:
python-version: '3.x'
- name: Generate release files
- name: Update main INI versions
env:
GITHUB_TOKEN: ${{ secrets.GH_API_TOKEN }}
run: python3 generate_release_files.py
@@ -41,6 +41,6 @@ jobs:
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add "include/*/RELEASE_*.ini"
git commit -m "chore: update release files [skip ci]"
git add include/apps/apps.ini include/sysmodules/sysmodules.ini include/overlays/overlays.ini include/emulation/emulation.ini
git commit -m "chore: update INI section versions [skip ci]"
git push

View File

@@ -1,7 +1,8 @@
#!/usr/bin/env python3
"""
Generate RELEASE_X.ini files by fetching latest GitHub/Gitea release tags
for sysmodules, overlays, apps, and emulation.
Update main INI files (apps, sysmodules, overlays, emulation) with latest
GitHub/Gitea release versions in section names, e.g. [DBI_EN - 864].
No RELEASE_*.ini files; versions live only in the main INIs.
"""
import re
@@ -10,7 +11,6 @@ import os
import time
import urllib.request
import urllib.error
import configparser
from pathlib import Path
from typing import Dict, List, Tuple, Optional, Any
@@ -22,7 +22,6 @@ GITHUB_TOKEN = os.environ.get('GITHUB_TOKEN', '')
def extract_repo_from_github_url(url: str) -> Optional[Tuple[str, str]]:
"""Extract owner and repo from GitHub API URL."""
# Pattern: https://api.github.com/repos/owner/repo/releases?...
match = re.search(r'/repos/([^/]+)/([^/]+)/releases', url)
if match:
return (match.group(1), match.group(2))
@@ -30,7 +29,6 @@ def extract_repo_from_github_url(url: str) -> Optional[Tuple[str, str]]:
def extract_repo_from_gitea_url(url: str) -> Optional[Tuple[str, str, str]]:
"""Extract API base, owner and repo from Gitea API URL. Returns (api_base, owner, repo)."""
# Pattern: https://host/api/v1/repos/owner/repo/releases?...
match = re.search(r'(https://[^/]+/api/v1)/repos/([^/]+)/([^/]+)/releases', url)
if match:
return (match.group(1), match.group(2), match.group(3))
@@ -44,7 +42,6 @@ def get_latest_tag_github(owner: str, repo: str) -> Optional[str]:
req.add_header('User-Agent', 'Release-Tag-Fetcher/1.0')
if GITHUB_TOKEN:
req.add_header('Authorization', f'token {GITHUB_TOKEN}')
with urllib.request.urlopen(req, timeout=10) as response:
releases = json.loads(response.read().decode('utf-8'))
if releases and len(releases) > 0:
@@ -66,7 +63,6 @@ def get_latest_tag_gitea(api_base: str, owner: str, repo: str) -> Optional[str]:
try:
req = urllib.request.Request(url)
req.add_header('User-Agent', 'Release-Tag-Fetcher/1.0')
with urllib.request.urlopen(req, timeout=10) as response:
releases = json.loads(response.read().decode('utf-8'))
if releases and len(releases) > 0:
@@ -86,127 +82,117 @@ def get_latest_tag(entry: Dict[str, Any]) -> Optional[str]:
return get_latest_tag_gitea(entry['api_base'], entry['owner'], entry['repo'])
return get_latest_tag_github(entry['owner'], entry['repo'])
def parse_ini_file(file_path: Path) -> List[Dict[str, Any]]:
"""Parse .ini file and extract entries with GitHub or Gitea API URLs."""
def parse_ini_file(file_path: Path, strip_version_suffix: bool = True) -> List[Dict[str, Any]]:
"""Parse .ini file and extract entries with GitHub or Gitea API URLs.
With strip_version_suffix=True, section names like [DBI_EN - 864] are treated
as base name 'DBI_EN' for API matching; section headers are then updated in place.
"""
entries = []
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
# Find all section headers
sections = re.finditer(r'^\[([^\]]+)\]', content, re.MULTILINE)
for section_match in sections:
section_name = section_match.group(1)
name = section_name.split(' - ', 1)[0].strip() if strip_version_suffix else section_name
section_start = section_match.end()
# Find next section or end of file
next_section = re.search(r'^\[', content[section_start:], re.MULTILINE)
section_end = section_start + (next_section.start() if next_section else len(content[section_start:]))
section_content = content[section_start:section_end]
# Look for GitHub API URLs first
github_urls = re.findall(r'https://api\.github\.com/repos/[^\s]+', section_content)
if github_urls:
repo_info = extract_repo_from_github_url(github_urls[0])
if repo_info:
entries.append({
'name': section_name,
'name': name,
'owner': repo_info[0],
'repo': repo_info[1],
'source': 'github',
'url': github_urls[0]
})
continue
# Look for Gitea API URLs (e.g. https://host/api/v1/repos/owner/repo/releases?...)
gitea_urls = re.findall(r'https://[^\s]+/api/v1/repos/[^\s]+/releases[^\s]*', section_content)
if gitea_urls:
repo_info = extract_repo_from_gitea_url(gitea_urls[0])
if repo_info:
entries.append({
'name': section_name,
'name': name,
'api_base': repo_info[0],
'owner': repo_info[1],
'repo': repo_info[2],
'source': 'gitea',
'url': gitea_urls[0]
})
return entries
def generate_release_ini(category: str, entries: List[Dict[str, Any]], output_path: Path):
"""Generate RELEASE_X.ini file for a category."""
print(f"\nGenerating {output_path.name}...")
def update_ini_section_versions(ini_path: Path, versions: Dict[str, str]) -> None:
"""Rewrite INI section headers to include version, e.g. [DBI_EN] -> [DBI_EN - 864].
Only updates sections whose base name (before ' - ') is in versions.
"""
with open(ini_path, 'r', encoding='utf-8') as f:
lines = f.readlines()
out = []
for line in lines:
m = re.match(r'^\[([^\]]+)\]\s*$', line)
if m:
title = m.group(1)
base = title.split(' - ', 1)[0].strip()
if base in versions:
line = f"[{base} - {versions[base]}]\n"
out.append(line)
with open(ini_path, 'w', encoding='utf-8') as f:
f.writelines(out)
print(f" Updated section versions in {ini_path.name}")
def _clean_tag(tag: str) -> str:
"""Normalize version string for display (strip v, truncate if needed)."""
clean = tag.lstrip('v')
if len(clean) > 30:
if '-' in clean:
parts = clean.split('-')
if len(parts) > 1 and len(parts[-1]) > 20:
clean = f"{parts[-2]}-{parts[-1][:7]}" if len(parts) > 1 else parts[-1][:7]
else:
clean = clean[:30]
else:
clean = clean[:30]
return clean
def fetch_versions_and_update_ini(category: str, ini_path: Path) -> Optional[Dict[str, Any]]:
"""Parse INI, fetch latest release tag per entry, update section headers in place. Returns result stats."""
entries = parse_ini_file(ini_path, strip_version_suffix=True)
if not entries:
return None
print(f"\n{category} ({ini_path.name})...")
print(f"Found {len(entries)} entries")
# Create config parser
config = configparser.ConfigParser()
config.optionxform = str # Preserve case
# Create section based on category
if category == 'sysmodules':
section_name = 'Versions'
elif category == 'overlays':
section_name = 'Versions'
elif category == 'apps':
section_name = 'Versions'
elif category == 'emulation':
section_name = 'Versions'
else:
section_name = 'Release Info'
config.add_section(section_name)
# Monitoring statistics
versions_dict: Dict[str, str] = {}
success_count = 0
failure_count = 0
failed_entries = []
# Fetch tags for each entry
failed_entries: List[str] = []
for i, entry in enumerate(entries):
# Add delay between requests to avoid rate limiting (except for first request)
if i > 0:
time.sleep(0.5) # 500ms delay between requests
time.sleep(0.5)
source = entry.get('source', 'github')
print(f" Fetching {entry['name']} ({entry['owner']}/{entry['repo']}) [{source}]...", end=' ')
tag = get_latest_tag(entry)
if tag:
# Remove 'v' prefix if present for cleaner version
clean_tag = tag.lstrip('v')
# Truncate very long version strings (e.g., commit hashes) to max 30 chars for Switch display
if len(clean_tag) > 30:
# Try to extract meaningful part (e.g., commit hash from "weekly-canary-release-25f89d3...")
if '-' in clean_tag:
parts = clean_tag.split('-')
# If it looks like a commit hash at the end, take last part and truncate to 7 chars
if len(parts) > 1 and len(parts[-1]) > 20:
clean_tag = f"{parts[-2]}-{parts[-1][:7]}" if len(parts) > 1 else parts[-1][:7]
else:
clean_tag = clean_tag[:30]
else:
clean_tag = clean_tag[:30]
config.set(section_name, entry['name'], clean_tag)
clean_tag = _clean_tag(tag)
versions_dict[entry['name']] = clean_tag
success_count += 1
print(f"{clean_tag}")
else:
failure_count += 1
failed_entries.append(f"{entry['name']} ({entry['owner']}/{entry['repo']})")
print("✗ Failed")
# Write to file
with open(output_path, 'w', encoding='utf-8') as f:
config.write(f, space_around_delimiters=False)
# Print monitoring summary
print(f"\n✓ Created {output_path}")
if versions_dict:
update_ini_section_versions(ini_path, versions_dict)
print(f" Success: {success_count}/{len(entries)}")
if failure_count > 0:
print(f" Failed: {failure_count}/{len(entries)}")
for failed in failed_entries:
print(f" - {failed}")
return {
'category': category,
'total': len(entries),
@@ -215,70 +201,41 @@ def generate_release_ini(category: str, entries: List[Dict[str, Any]], output_pa
'failed_entries': failed_entries
}
def main():
"""Main function."""
base_path = Path(__file__).parent
include_path = base_path / "include"
print("GitHub / Gitea Release Tag Fetcher")
print("GitHub / Gitea update main INI section versions")
if GITHUB_TOKEN:
print("✓ Using GitHub token (higher rate limit)")
else:
print("⚠ No GitHub token found. Set GITHUB_TOKEN env var for higher rate limits.")
print("⚠ No GitHub token. Set GITHUB_TOKEN for higher rate limits.")
print("=" * 50)
# Track all results for final summary
all_results = []
# Process sysmodules
sysmodules_path = include_path / "sysmodules" / "sysmodules.ini"
if sysmodules_path.exists():
entries = parse_ini_file(sysmodules_path)
if entries:
output_path = include_path / "sysmodules" / "RELEASE_SM.ini"
result = generate_release_ini('sysmodules', entries, output_path)
all_results.append(result)
# Process overlays
overlays_path = include_path / "overlays" / "overlays.ini"
if overlays_path.exists():
entries = parse_ini_file(overlays_path)
if entries:
output_path = include_path / "overlays" / "RELEASE_OV.ini"
result = generate_release_ini('overlays', entries, output_path)
all_results.append(result)
# Process apps
apps_path = include_path / "apps" / "apps.ini"
if apps_path.exists():
entries = parse_ini_file(apps_path)
if entries:
output_path = include_path / "apps" / "RELEASE_APPS.ini"
result = generate_release_ini('apps', entries, output_path)
all_results.append(result)
# Process emulation
emulation_path = include_path / "emulation" / "emulation.ini"
if emulation_path.exists():
entries = parse_ini_file(emulation_path)
if entries:
output_path = include_path / "emulation" / "RELEASE_EM.ini"
result = generate_release_ini('emulation', entries, output_path)
all_results.append(result)
# Print final monitoring summary
all_results: List[Dict[str, Any]] = []
for category, rel_path in [
('sysmodules', 'sysmodules/sysmodules.ini'),
('overlays', 'overlays/overlays.ini'),
('apps', 'apps/apps.ini'),
('emulation', 'emulation/emulation.ini'),
]:
ini_path = include_path / rel_path
if ini_path.exists():
result = fetch_versions_and_update_ini(category, ini_path)
if result:
all_results.append(result)
print("\n" + "=" * 50)
print("FINAL SUMMARY")
print("=" * 50)
total_entries = sum(r['total'] for r in all_results)
total_success = sum(r['success'] for r in all_results)
total_failed = sum(r['failed'] for r in all_results)
print(f"Total entries processed: {total_entries}")
print(f"Successfully fetched: {total_success} ({total_success/total_entries*100:.1f}%)" if total_entries > 0 else "Successfully fetched: 0")
print(f"Failed: {total_failed} ({total_failed/total_entries*100:.1f}%)" if total_entries > 0 else "Failed: 0")
# List all failed entries by category
if total_entries > 0:
print(f"Successfully fetched: {total_success} ({total_success/total_entries*100:.1f}%)")
print(f"Failed: {total_failed} ({total_failed/total_entries*100:.1f}%)")
else:
print("Successfully fetched: 0")
if total_failed > 0:
print("\nFailed entries by category:")
for result in all_results:
@@ -286,10 +243,8 @@ def main():
print(f" {result['category']}:")
for failed in result['failed_entries']:
print(f" - {failed}")
print("\n" + "=" * 50)
print("Done!")
if __name__ == "__main__":
main()

View File

@@ -1,23 +0,0 @@
[Versions]
aio-switch-updater=2.23.3
Amiibo Generator=2.2.1
Amiigo=2.4.1
Chiaki_NG=release-af569df
DBI_DE=849
DBI_EN=849
DNS_mitm Tester=1.0.4
emuiibo=1.1.2
Goldleaf=1.2.0
Hekate-Toolbox=4.0.4
JKSV=12/02/2025
linkalho=2.0.2
Moonlight Switch=1.3.4
Neumann=0.0.31
nxmp=0.9.3
NX-Activity-Log=1.4.0
NXThemesInstaller=4.8.3
Sphaira=1.0.0
switchfin=0.8.3
ThemezerNX=2.0.3
Tinwoo=1.0.28

View File

@@ -1,6 +1,6 @@
[Homebrew Apps]
[aio-switch-updater]
[aio-switch-updater - 2.23.3]
try:
download https://api.github.com/repos/HamletDuFromage/aio-switch-updater/releases?per_page=1 /config/ultrahand/downloads/aio-switch-updater-api.json
json_file /config/ultrahand/downloads/aio-switch-updater-api.json
@@ -8,7 +8,7 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
mv /config/ultrahand/downloads/aio-switch-updater.nro /switch/aio-switch-updater/
delete /config/ultrahand/downloads/aio-switch-updater-api.json
[Amiibo Generator]
[Amiibo Generator - 2.2.1]
try:
download https://api.github.com/repos/yusufakg/AmiiboGenerator/releases?per_page=1 /config/ultrahand/downloads/amiibo-generator-api.json
json_file /config/ultrahand/downloads/amiibo-generator-api.json
@@ -16,7 +16,7 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
mv /config/ultrahand/downloads/amiibo-generator.nro /switch/AmiiboGenerator/
delete /config/ultrahand/downloads/amiibo-generator-api.json
[Amiigo]
[Amiigo - 2.4.1]
try:
download https://api.github.com/repos/CompSciOrBust/Amiigo/releases?per_page=1 /config/ultrahand/downloads/amiigo-api.json
json_file /config/ultrahand/downloads/amiigo-api.json
@@ -24,7 +24,7 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
mv /config/ultrahand/downloads/amiigo.nro /switch/Amiigo/
delete /config/ultrahand/downloads/amiigo-api.json
[Chiaki_NG]
[Chiaki_NG - release-f4be5fe]
try:
download https://api.github.com/repos/streetpea/chiaki-ng/releases?per_page=1 /config/ultrahand/downloads/chiaki-api.json
json_file /config/ultrahand/downloads/chiaki-api.json
@@ -32,7 +32,7 @@ download {json_file(0,assets,8,browser_download_url)} /config/ultrahand/download
mv /config/ultrahand/downloads/chiaki.nro /switch/Chiaki/
delete /config/ultrahand/downloads/chiaki-api.json
[DBI_DE]
[DBI_DE - 874]
try:
download https://git.niklascfw.de/api/v1/repos/OmniNX/DBI_DE/releases?limit=1 /config/ultrahand/downloads/dbi-api.json
json_file /config/ultrahand/downloads/dbi-api.json
@@ -41,7 +41,7 @@ unzip /config/ultrahand/downloads/dbi.zip /
delete /config/ultrahand/downloads/dbi-api.json
delete /config/ultrahand/downloads/dbi.zip
[DBI_EN]
[DBI_EN - 874]
try:
download https://git.niklascfw.de/api/v1/repos/OmniNX/DBI_EN/releases?limit=1 /config/ultrahand/downloads/dbi-api.json
json_file /config/ultrahand/downloads/dbi-api.json
@@ -50,7 +50,7 @@ unzip /config/ultrahand/downloads/dbi.zip /
delete /config/ultrahand/downloads/dbi-api.json
delete /config/ultrahand/downloads/dbi.zip
[DNS_mitm Tester]
[DNS_mitm Tester - 1.0.4]
try:
download https://api.github.com/repos/meganukebmp/Switch_90DNS_tester/releases?per_page=1 /config/ultrahand/downloads/dns-tester-api.json
json_file /config/ultrahand/downloads/dns-tester-api.json
@@ -58,24 +58,27 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
mv /config/ultrahand/downloads/dns-tester.nro /switch/DNS-Block_Tester/
delete /config/ultrahand/downloads/dns-tester-api.json
[emuiibo]
[emuiibo - 1.1.3]
try:
download https://api.github.com/repos/XorTroll/emuiibo/releases?per_page=1 /config/ultrahand/downloads/emuiibo-api.json
json_file /config/ultrahand/downloads/emuiibo-api.json
download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/downloads/emuiibo.nro
mv /config/ultrahand/downloads/emuiibo.nro /switch/emuiibo/
download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/downloads/emuiibo.zip
unzip /config/ultrahand/downloads/emuiibo.zip /config/ultrahand/downloads
mv /config/ultrahand/downloads/SdOut/* /
delete /config/ultrahand/downloads/emuiibo.zip
delete /config/ultrahand/downloads/SdOut/
delete /config/ultrahand/downloads/emuiibo-api.json
[Goldleaf]
[Goldleaf - 1.2.0]
try:
download https://api.github.com/repos/XorTroll/Goldleaf/releases?per_page=1 /config/ultrahand/downloads/goldleaf-api.json
json_file /config/ultrahand/downloads/goldleaf-api.json
download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/downloads/goldleaf.zip
unzip /config/ultrahand/downloads/goldleaf.zip /
download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/downloads/goldleaf.nro
mv /config/ultrahand/downloads/goldleaf.nro /switch/Goldleaf/
delete /config/ultrahand/downloads/goldleaf.nro
delete /config/ultrahand/downloads/goldleaf-api.json
delete /config/ultrahand/downloads/goldleaf.zip
[Hekate-Toolbox]
[Hekate-Toolbox - 4.0.4]
try:
download https://api.github.com/repos/WerWolv/Hekate-Toolbox/releases?per_page=1 /config/ultrahand/downloads/hekate-toolbox-api.json
json_file /config/ultrahand/downloads/hekate-toolbox-api.json
@@ -83,7 +86,7 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
mv /config/ultrahand/downloads/hekate-toolbox.nro /switch/Hekate-Toolbox/
delete /config/ultrahand/downloads/hekate-toolbox-api.json
[JKSV]
[JKSV - 12/02/2025]
try:
download https://api.github.com/repos/J-D-K/JKSV/releases?per_page=1 /config/ultrahand/downloads/jksv-api.json
json_file /config/ultrahand/downloads/jksv-api.json
@@ -91,15 +94,16 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
mv /config/ultrahand/downloads/jksv.nro /switch/JKSV/
delete /config/ultrahand/downloads/jksv-api.json
[linkalho]
[linkalho - 2.0.2]
try:
download https://api.github.com/repos/impeeza/linkalho/releases?per_page=1 /config/ultrahand/downloads/linkalho-api.json
json_file /config/ultrahand/downloads/linkalho-api.json
download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/downloads/linkalho.nro
mv /config/ultrahand/downloads/linkalho.nro /switch/linkalho/
download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/downloads/linkalho.zip
unzip /config/ultrahand/downloads/linkalho.zip /
delete /config/ultrahand/downloads/linkalho.zip
delete /config/ultrahand/downloads/linkalho-api.json
[Moonlight Switch]
[Moonlight Switch - 1.4.0]
try:
download https://api.github.com/repos/XITRIX/Moonlight-Switch/releases?per_page=1 /config/ultrahand/downloads/moonlight-api.json
json_file /config/ultrahand/downloads/moonlight-api.json
@@ -107,7 +111,7 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
mv /config/ultrahand/downloads/moonlight.nro /switch/Moonlight Switch/
delete /config/ultrahand/downloads/moonlight-api.json
[Neumann]
[Neumann - 0.0.31]
try:
download https://api.github.com/repos/turtle-insect/Neumann/releases?per_page=1 /config/ultrahand/downloads/neumann-api.json
json_file /config/ultrahand/downloads/neumann-api.json
@@ -115,7 +119,7 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
mv /config/ultrahand/downloads/neumann.nro /switch/Neumann/
delete /config/ultrahand/downloads/neumann-api.json
[nxmp]
[nxmp - 0.9.3]
try:
download https://api.github.com/repos/proconsule/nxmp/releases?per_page=1 /config/ultrahand/downloads/nxmp-api.json
json_file /config/ultrahand/downloads/nxmp-api.json
@@ -123,23 +127,23 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
mv /config/ultrahand/downloads/nxmp.nro /switch/nxmp/
delete /config/ultrahand/downloads/nxmp-api.json
[NX-Activity-Log]
[NX-Activity-Log - 1.5.8]
try:
download https://api.github.com/repos/tallbl0nde/NX-Activity-Log/releases?per_page=1 /config/ultrahand/downloads/nx-activity-log-api.json
download https://api.github.com/repos/zdm65477730/NX-Activity-Log/releases?per_page=1 /config/ultrahand/downloads/nx-activity-log-api.json
json_file /config/ultrahand/downloads/nx-activity-log-api.json
download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/downloads/nx-activity-log.nro
mv /config/ultrahand/downloads/nx-activity-log.nro /switch/NX-Activity-Log/
delete /config/ultrahand/downloads/nx-activity-log-api.json
[NXThemesInstaller]
[NXThemesInstaller - 4.8.3]
try:
download https://api.github.com/repos/exelix11/SwitchThemeInjector/releases?per_page=1 /config/ultrahand/downloads/switchthemeinjector-api.json
json_file /config/ultrahand/downloads/switchthemeinjector-api.json
download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/downloads/switchthemeinjector.nro
mv /config/ultrahand/downloads/switchthemeinjector.nro /switch/NXThemesInstaller/
delete /config/ultrahand/downloads/switchthemeinjector-api.json
mv /config/ultrahand/downloads/switchthemeinjector.nro /switch/NXThemesInstaller/NXThemesInstaller.nro
delete /config/ultrahand/downloads/NXThemesInstaller-api.json
[Sphaira]
[Sphaira - 1.0.0]
try:
download https://api.github.com/repos/ITotalJustice/sphaira/releases?per_page=1 /config/ultrahand/downloads/sphaira-api.json
json_file /config/ultrahand/downloads/sphaira-api.json
@@ -148,7 +152,7 @@ unzip /config/ultrahand/downloads/sphaira.zip /
delete /config/ultrahand/downloads/sphaira-api.json
delete /config/ultrahand/downloads/sphaira.zip
[switchfin]
[switchfin - 0.8.3]
try:
download https://api.github.com/repos/dragonflylee/switchfin/releases?per_page=1 /config/ultrahand/downloads/switchfin-api.json
json_file /config/ultrahand/downloads/switchfin-api.json
@@ -156,7 +160,7 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
mv /config/ultrahand/downloads/switchfin.nro /switch/switchfin/
delete /config/ultrahand/downloads/switchfin-api.json
[ThemezerNX]
[ThemezerNX - 2.0.3]
try:
download https://api.github.com/repos/suchmememanyskill/themezer-nx/releases?per_page=1 /config/ultrahand/downloads/themezer-api.json
json_file /config/ultrahand/downloads/themezer-api.json
@@ -165,7 +169,7 @@ mv /config/ultrahand/downloads/themezer.nro /switch/ThemezerNX/
cp /Backup/SB/Icongrabber/config.json /config/Icongrabber/config.json
delete /config/ultrahand/downloads/themezer-api.json
[Tinwoo]
[Tinwoo - 1.0.28]
try:
download https://api.github.com/repos/mrdude2478/Tinwoo-Release/releases?per_page=1 /config/ultrahand/downloads/tinwoo-api.json
json_file /config/ultrahand/downloads/tinwoo-api.json
@@ -191,4 +195,4 @@ delete '/config/ultrahand/downloads/YouTube_Patched.zip'
[gap]
;mode=table
;background=false
;gap=30
;gap=30

View File

@@ -1,48 +1,2 @@
[boot]
set-ini-val ./include/apps/config.ini 'Amiibo Generator' 'footer' ''
set-ini-val ./include/apps/config.ini Amiigo 'footer' ''
set-ini-val ./include/apps/config.ini DBI_EN 'footer' ''
set-ini-val ./include/apps/config.ini DBI_DE 'footer' ''
set-ini-val ./include/apps/config.ini Chiaki_NG 'footer' ''
set-ini-val ./include/apps/config.ini 'DNS_mitm Tester' 'footer' ''
set-ini-val ./include/apps/config.ini Hekate-Toolbox 'footer' ''
set-ini-val ./include/apps/config.ini JKSV 'footer' ''
set-ini-val ./include/apps/config.ini 'Moonlight Switch' 'footer' ''
set-ini-val ./include/apps/config.ini Neumann 'footer' ''
set-ini-val ./include/apps/config.ini 'NX-Activity-Log' 'footer' ''
set-ini-val ./include/apps/config.ini RetroArch 'footer' ''
set-ini-val ./include/apps/config.ini Sphaira 'footer' ''
set-ini-val ./include/apps/config.ini ThemezerNX 'footer' ''
set-ini-val ./include/apps/config.ini emuiibo 'footer' ''
set-ini-val ./include/apps/config.ini Tinwoo 'footer' ''
set-ini-val ./include/apps/config.ini Goldleaf 'footer' ''
set-ini-val ./include/apps/config.ini linkalho 'footer' ''
set-ini-val ./include/apps/config.ini nxmp 'footer' ''
set-ini-val ./include/apps/config.ini aio-switch-updater 'footer' ''
set-ini-val ./include/apps/config.ini switchfin 'footer' ''
set-ini-val ./include/apps/config.ini NXThemesInstaller 'footer' ''
download https://git.niklascfw.de/OmniNX/OmniNX-Downloader/raw/branch/main/include/apps/RELEASE_APPS.ini ./include/apps/RELEASE_APPS.ini
ini_file ./include/apps/RELEASE_APPS.ini
set-ini-val ./include/apps/config.ini 'Amiibo Generator' 'footer' '{ini_file(Versions,Amiibo Generator)}'
set-ini-val ./include/apps/config.ini Amiigo 'footer' '{ini_file(Versions,Amiigo)}'
set-ini-val ./include/apps/config.ini DBI_EN 'footer' '{ini_file(Versions,DBI_EN)}'
set-ini-val ./include/apps/config.ini DBI_DE 'footer' '{ini_file(Versions,DBI_DE)}'
set-ini-val ./include/apps/config.ini Chiaki_NG 'footer' '{ini_file(Versions,Chiaki_NG)}'
set-ini-val ./include/apps/config.ini 'DNS_mitm Tester' 'footer' '{ini_file(Versions,DNS_mitm Tester)}'
set-ini-val ./include/apps/config.ini Hekate-Toolbox 'footer' '{ini_file(Versions,Hekate-Toolbox)}'
set-ini-val ./include/apps/config.ini JKSV 'footer' '{ini_file(Versions,JKSV)}'
set-ini-val ./include/apps/config.ini 'Moonlight Switch' 'footer' '{ini_file(Versions,Moonlight Switch)}'
set-ini-val ./include/apps/config.ini Neumann 'footer' '{ini_file(Versions,Neumann)}'
set-ini-val ./include/apps/config.ini 'NX-Activity-Log' 'footer' '{ini_file(Versions,NX-Activity-Log)}'
set-ini-val ./include/apps/config.ini RetroArch 'footer' '{ini_file(Versions,RetroArch)}'
set-ini-val ./include/apps/config.ini Sphaira 'footer' '{ini_file(Versions,Sphaira)}'
set-ini-val ./include/apps/config.ini ThemezerNX 'footer' '{ini_file(Versions,ThemezerNX)}'
set-ini-val ./include/apps/config.ini emuiibo 'footer' '{ini_file(Versions,emuiibo)}'
set-ini-val ./include/apps/config.ini Tinwoo 'footer' '{ini_file(Versions,Tinwoo)}'
set-ini-val ./include/apps/config.ini Goldleaf 'footer' '{ini_file(Versions,Goldleaf)}'
set-ini-val ./include/apps/config.ini linkalho 'footer' '{ini_file(Versions,linkalho)}'
set-ini-val ./include/apps/config.ini nxmp 'footer' '{ini_file(Versions,nxmp)}'
set-ini-val ./include/apps/config.ini aio-switch-updater 'footer' '{ini_file(Versions,aio-switch-updater)}'
set-ini-val ./include/apps/config.ini switchfin 'footer' '{ini_file(Versions,switchfin)}'
set-ini-val ./include/apps/config.ini NXThemesInstaller 'footer' '{ini_file(Versions,NXThemesInstaller)}'
download https://git.niklascfw.de/OmniNX/OmniNX-Downloader/raw/branch/main/include/apps/apps.ini '/switch/.packages/OmniNX Downloader/include/apps/apps.ini'

View File

@@ -1,4 +0,0 @@
[Versions]
melonDS=7.2.1
PPSSPP-NX=1.19.3

View File

@@ -1,8 +1,2 @@
[boot]
set-ini-val ./include/emulation/config.ini melonDS 'footer' ''
set-ini-val ./include/emulation/config.ini PPSSPP-NX 'footer' ''
download https://git.niklascfw.de/OmniNX/OmniNX-Downloader/raw/branch/main/include/emulation/RELEASE_EM.ini ./include/emulation/RELEASE_EM.ini
ini_file ./include/emulation/RELEASE_EM.ini
set-ini-val ./include/emulation/config.ini melonDS 'footer' '{ini_file(Versions,melonDS)}'
set-ini-val ./include/emulation/config.ini PPSSPP-NX 'footer' '{ini_file(Versions,PPSSPP-NX)}'
download https://git.niklascfw.de/OmniNX/OmniNX-Downloader/raw/branch/main/include/emulation/emulation.ini '/switch/.packages/OmniNX Downloader/include/emulation/emulation.ini'

View File

@@ -1,5 +1,3 @@
;show_widget=true
[Emulatoren]
@@ -9,7 +7,7 @@ download 'https://cdn.niklascfw.de/switch/pack/os/lakka.zip' '/config/ultrahand/
unzip '/config/ultrahand/downloads/lakka.zip' '/'
delete '/config/ultrahand/downloads/lakka.zip'
[melonDS]
[melonDS - 7.2.1]
try:
download https://api.github.com/repos/ArcDelta/melonDS/releases?per_page=1 /config/ultrahand/downloads/melonds-api.json
json_file /config/ultrahand/downloads/melonds-api.json
@@ -17,7 +15,16 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
mv /config/ultrahand/downloads/melonds.nro /switch/melonDS/
delete /config/ultrahand/downloads/melonds-api.json
[PPSSPP-NX]
[mGBA - 0.10.5]
try:
download https://git.niklascfw.de/api/v1/repos/omninx/mGBA/releases?limit=1 /config/ultrahand/downloads/mgba-api.json
json_file /config/ultrahand/downloads/mgba-api.json
download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/downloads/mgba.zip
unzip '/config/ultrahand/downloads/mgba.zip' /
delete /config/ultrahand/downloads/mgba-api.json
delete /config/ultrahand/downloads/mgba.zip
[PPSSPP-NX - 1.19.3]
try:
download https://git.niklascfw.de/api/v1/repos/OmniNX/PPSSPP-NX/releases?limit=1 /config/ultrahand/downloads/ppsspp-nx-api.json
json_file /config/ultrahand/downloads/ppsspp-nx-api.json

View File

@@ -27,7 +27,7 @@ download 'https://cdn.niklascfw.de/switch/pack/inis/Ubuntu_Jammy.ini' '/bootload
[Ubuntu_Noble.ini - SD]
try:
download 'https://cdn.niklascfw.de/switch/pack/inis/Ubuntu_Jammy_eMMC.ini' '/bootloader/ini/'
download 'https://cdn.niklascfw.de/switch/pack/inis/Ubuntu_Noble.ini' '/bootloader/ini/'
[Stock_CFW.ini - SysMMC]
try:

View File

@@ -1,5 +1,3 @@
;show_widget=true
[Betriebssysteme]
[*Android]

View File

@@ -1,13 +0,0 @@
[Versions]
DNS-MITM_Manager=0.2.0
EdiZon-Overlay=1.0.14
FPSLocker=3.2.4
Fizeau=2.8.2
NXFanControl+=1.0.5+
QuickNTP=1.6.0
ReverseNX-RT=2.2.1
Status-Monitor-Overlay=1.3.2+r6
Sys-Clk=2.0.1+r21
SysDVR=1.0.14
Sysmodules=1.4.7

View File

@@ -1,26 +1,2 @@
[boot]
set-ini-val ./include/overlays/config.ini DNS-MITM_Manager 'footer' ''
set-ini-val ./include/overlays/config.ini EdiZon-Overlay 'footer' ''
set-ini-val ./include/overlays/config.ini FPSLocker 'footer' ''
set-ini-val ./include/overlays/config.ini Fizeau 'footer' ''
set-ini-val ./include/overlays/config.ini NXFanControl+ 'footer' ''
set-ini-val ./include/overlays/config.ini QuickNTP 'footer' ''
set-ini-val ./include/overlays/config.ini ReverseNX-RT 'footer' ''
set-ini-val ./include/overlays/config.ini Sysmodules 'footer' ''
set-ini-val ./include/overlays/config.ini Sys-Clk 'footer' ''
set-ini-val ./include/overlays/config.ini SysDVR 'footer' ''
set-ini-val ./include/overlays/config.ini Status-Monitor-Overlay 'footer' ''
download https://git.niklascfw.de/OmniNX/OmniNX-Downloader/raw/branch/main/include/overlays/RELEASE_OV.ini ./include/overlays/RELEASE_OV.ini
ini_file ./include/overlays/RELEASE_OV.ini
set-ini-val ./include/overlays/config.ini DNS-MITM_Manager 'footer' '{ini_file(Versions,DNS-MITM_Manager)}'
set-ini-val ./include/overlays/config.ini EdiZon-Overlay 'footer' '{ini_file(Versions,EdiZon-Overlay)}'
set-ini-val ./include/overlays/config.ini FPSLocker 'footer' '{ini_file(Versions,FPSLocker)}'
set-ini-val ./include/overlays/config.ini Fizeau 'footer' '{ini_file(Versions,Fizeau)}'
set-ini-val ./include/overlays/config.ini NXFanControl+ 'footer' '{ini_file(Versions,NXFanControl+)}'
set-ini-val ./include/overlays/config.ini QuickNTP 'footer' '{ini_file(Versions,QuickNTP)}'
set-ini-val ./include/overlays/config.ini ReverseNX-RT 'footer' '{ini_file(Versions,ReverseNX-RT)}'
set-ini-val ./include/overlays/config.ini Sysmodules 'footer' '{ini_file(Versions,Sysmodules)}'
set-ini-val ./include/overlays/config.ini Sys-Clk 'footer' '{ini_file(Versions,Sys-Clk)}'
set-ini-val ./include/overlays/config.ini SysDVR 'footer' '{ini_file(Versions,SysDVR)}'
set-ini-val ./include/overlays/config.ini Status-Monitor-Overlay 'footer' '{ini_file(Versions,Status-Monitor-Overlay)}'
download https://git.niklascfw.de/OmniNX/OmniNX-Downloader/raw/branch/main/include/overlays/overlays.ini '/switch/.packages/OmniNX Downloader/include/overlays/overlays.ini'

View File

@@ -1,6 +1,6 @@
[UltraHand Overlays]
[DNS-MITM_Manager]
[DNS-MITM_Manager - 0.2.0]
try:
download https://api.github.com/repos/sthetix/DNS-MITM_Manager/releases?per_page=1 /config/ultrahand/downloads/dns-mitm-api.json
json_file /config/ultrahand/downloads/dns-mitm-api.json
@@ -9,7 +9,7 @@ unzip /config/ultrahand/downloads/dns-mitm.zip /
delete /config/ultrahand/downloads/dns-mitm-api.json
delete /config/ultrahand/downloads/dns-mitm.zip
[EdiZon-Overlay]
[EdiZon-Overlay - 1.0.14]
try:
download https://api.github.com/repos/proferabg/EdiZon-Overlay/releases?per_page=1 /config/ultrahand/downloads/edizon-api.json
json_file /config/ultrahand/downloads/edizon-api.json
@@ -17,7 +17,7 @@ download {json_file(0,assets,1,browser_download_url)} /config/ultrahand/download
move /config/ultrahand/downloads/edizon.ovl /switch/.overlays/
delete /config/ultrahand/downloads/edizon-api.json
[FPSLocker]
[FPSLocker - 3.3.1]
try:
download https://api.github.com/repos/masagrator/FPSLocker/releases?per_page=1 /config/ultrahand/downloads/fpslocker-api.json
json_file /config/ultrahand/downloads/fpslocker-api.json
@@ -25,7 +25,7 @@ download {json_file(0,assets,1,browser_download_url)} /config/ultrahand/download
move /config/ultrahand/downloads/fpslocker.ovl /switch/.overlays/
delete /config/ultrahand/downloads/fpslocker-api.json
[Fizeau]
[Fizeau - 2.8.2]
try:
download https://api.github.com/repos/averne/Fizeau/releases?per_page=1 /config/ultrahand/downloads/fizeau-api.json
json_file /config/ultrahand/downloads/fizeau-api.json
@@ -34,7 +34,7 @@ unzip /config/ultrahand/downloads/fizeau.zip /
delete /config/ultrahand/downloads/fizeau-api.json
delete /config/ultrahand/downloads/fizeau.zip
[NXFanControl+]
[NXFanControl+ - 1.0.5+]
try:
download https://api.github.com/repos/dominatorul/NX-FanControl/releases?per_page=1 /config/ultrahand/downloads/nxfancontrol-api.json
json_file /config/ultrahand/downloads/nxfancontrol-api.json
@@ -43,7 +43,7 @@ unzip /config/ultrahand/downloads/nxfancontrol.zip /
delete /config/ultrahand/downloads/nxfancontrol-api.json
delete /config/ultrahand/downloads/nxfancontrol.zip
[QuickNTP]
[QuickNTP - 1.6.0]
try:
download https://api.github.com/repos/nedex/QuickNTP/releases?per_page=1 /config/ultrahand/downloads/quickntp-api.json
json_file /config/ultrahand/downloads/quickntp-api.json
@@ -52,7 +52,7 @@ unzip /config/ultrahand/downloads/quickntp.zip /
delete /config/ultrahand/downloads/quickntp-api.json
delete /config/ultrahand/downloads/quickntp.zip
[ReverseNX-RT]
[ReverseNX-RT - 2.2.1]
try:
download https://api.github.com/repos/masagrator/ReverseNX-RT/releases?per_page=1 /config/ultrahand/downloads/reversenx-api.json
json_file /config/ultrahand/downloads/reversenx-api.json
@@ -60,7 +60,7 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
move /config/ultrahand/downloads/reversenx.ovl /switch/.overlays/
delete /config/ultrahand/downloads/reversenx-api.json
[Status-Monitor-Overlay]
[Status-Monitor-Overlay - 1.3.2+r7]
try:
download https://api.github.com/repos/ppkantorski/Status-Monitor-Overlay/releases?per_page=1 /config/ultrahand/downloads/status-monitor-api.json
json_file /config/ultrahand/downloads/status-monitor-api.json
@@ -68,7 +68,7 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
move /config/ultrahand/downloads/status-monitor.ovl /switch/.overlays/
delete /config/ultrahand/downloads/status-monitor-api.json
[Sys-Clk]
[Sys-Clk - 2.0.1+r22]
try:
download https://api.github.com/repos/ppkantorski/sys-clk/releases?per_page=1 /config/ultrahand/downloads/sys-clk-api.json
json_file /config/ultrahand/downloads/sys-clk-api.json
@@ -76,7 +76,7 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
move /config/ultrahand/downloads/sys-clk.ovl /switch/.overlays/
delete /config/ultrahand/downloads/sys-clk-api.json
[SysDVR]
[SysDVR - 1.0.15]
try:
download https://api.github.com/repos/zdm65477730/sysdvr-overlay/releases?per_page=1 /config/ultrahand/downloads/sysdvr-api.json
json_file /config/ultrahand/downloads/sysdvr-api.json
@@ -85,7 +85,7 @@ unzip /config/ultrahand/downloads/sysdvr.zip /
delete /config/ultrahand/downloads/sysdvr-api.json
delete /config/ultrahand/downloads/sysdvr.zip
[Sysmodules]
[Sysmodules - 1.4.8]
try:
download https://api.github.com/repos/ppkantorski/ovl-sysmodules/releases?per_page=1 /config/ultrahand/downloads/sysmodules-ovl-api.json
json_file /config/ultrahand/downloads/sysmodules-ovl-api.json

View File

@@ -1,18 +0,0 @@
[Versions]
Alchemist=1.0.5
EdiZon-Overlay=1.0.15
Fizeau=2.8.2+r2
FPSLocker=3.2.3+r1
ldn-mitm=1.20.2
Memory-Kit=1.0.0
MissionControl=0.14.2
NX-FanControl=1.0.3
ovl-sysmodules=1.4.7
QuickNTP=1.6.0+r2
SaltyNX=1.7.3
Status-Monitor-Overlay=1.3.2+r6
sys-botbase=2.41
sys-clk=2.0.1+r21
sys-patch=1.5.9
TriPlayer=2.2.6

View File

@@ -1,36 +1,2 @@
[boot]
set-ini-val ./include/sysmodules/config.ini ldn-mitm 'footer' ''
set-ini-val ./include/sysmodules/config.ini MissionControl 'footer' ''
set-ini-val ./include/sysmodules/config.ini sys-patch 'footer' ''
set-ini-val ./include/sysmodules/config.ini SaltyNX 'footer' ''
set-ini-val ./include/sysmodules/config.ini sys-botbase 'footer' ''
set-ini-val ./include/sysmodules/config.ini TriPlayer 'footer' ''
set-ini-val ./include/sysmodules/config.ini Alchemist 'footer' ''
set-ini-val ./include/sysmodules/config.ini Memory-Kit 'footer' ''
set-ini-val ./include/sysmodules/config.ini Fizeau 'footer' ''
set-ini-val ./include/sysmodules/config.ini QuickNTP 'footer' ''
set-ini-val ./include/sysmodules/config.ini ovl-sysmodules 'footer' ''
set-ini-val ./include/sysmodules/config.ini EdiZon-Overlay 'footer' ''
set-ini-val ./include/sysmodules/config.ini FPSLocker 'footer' ''
set-ini-val ./include/sysmodules/config.ini sys-clk 'footer' ''
set-ini-val ./include/sysmodules/config.ini Status-Monitor-Overlay 'footer' ''
set-ini-val ./include/sysmodules/config.ini NX-FanControl 'footer' ''
download https://git.niklascfw.de/OmniNX/OmniNX-Downloader/raw/branch/main/include/sysmodules/RELEASE_SM.ini ./include/sysmodules/RELEASE_SM.ini
ini_file ./include/sysmodules/RELEASE_SM.ini
set-ini-val ./include/sysmodules/config.ini ldn-mitm 'footer' '{ini_file(Versions,ldn-mitm)}'
set-ini-val ./include/sysmodules/config.ini MissionControl 'footer' '{ini_file(Versions,MissionControl)}'
set-ini-val ./include/sysmodules/config.ini sys-patch 'footer' '{ini_file(Versions,sys-patch)}'
set-ini-val ./include/sysmodules/config.ini SaltyNX 'footer' '{ini_file(Versions,SaltyNX)}'
set-ini-val ./include/sysmodules/config.ini sys-botbase 'footer' '{ini_file(Versions,sys-botbase)}'
set-ini-val ./include/sysmodules/config.ini TriPlayer 'footer' '{ini_file(Versions,TriPlayer)}'
set-ini-val ./include/sysmodules/config.ini Alchemist 'footer' '{ini_file(Versions,Alchemist)}'
set-ini-val ./include/sysmodules/config.ini Memory-Kit 'footer' '{ini_file(Versions,Memory-Kit)}'
set-ini-val ./include/sysmodules/config.ini Fizeau 'footer' '{ini_file(Versions,Fizeau)}'
set-ini-val ./include/sysmodules/config.ini QuickNTP 'footer' '{ini_file(Versions,QuickNTP)}'
set-ini-val ./include/sysmodules/config.ini ovl-sysmodules 'footer' '{ini_file(Versions,ovl-sysmodules)}'
set-ini-val ./include/sysmodules/config.ini EdiZon-Overlay 'footer' '{ini_file(Versions,EdiZon-Overlay)}'
set-ini-val ./include/sysmodules/config.ini FPSLocker 'footer' '{ini_file(Versions,FPSLocker)}'
set-ini-val ./include/sysmodules/config.ini sys-clk 'footer' '{ini_file(Versions,sys-clk)}'
set-ini-val ./include/sysmodules/config.ini Status-Monitor-Overlay 'footer' '{ini_file(Versions,Status-Monitor-Overlay)}'
set-ini-val ./include/sysmodules/config.ini NX-FanControl 'footer' '{ini_file(Versions,NX-FanControl)}'
download https://git.niklascfw.de/OmniNX/OmniNX-Downloader/raw/branch/main/include/sysmodules/sysmodules.ini '/switch/.packages/OmniNX Downloader/include/sysmodules/sysmodules.ini'

View File

@@ -1,6 +1,6 @@
[System Module]
[Alchemist]
[Alchemist - 1.0.5]
try:
download https://api.github.com/repos/ppkantorski/Alchemist/releases?per_page=1 /config/ultrahand/downloads/alchemist-api.json
json_file /config/ultrahand/downloads/alchemist-api.json
@@ -9,7 +9,7 @@ unzip /config/ultrahand/downloads/alchemist.zip /
delete /config/ultrahand/downloads/alchemist-api.json
delete /config/ultrahand/downloads/alchemist.zip
[EdiZon-Overlay]
[EdiZon-Overlay - 1.0.15]
try:
download https://api.github.com/repos/Arch9SK7/EdiZon-Overlay/releases?per_page=1 /config/ultrahand/downloads/edizon-overlay-api.json
json_file /config/ultrahand/downloads/edizon-overlay-api.json
@@ -17,7 +17,7 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
mv /config/ultrahand/downloads/edizon-overlay.ovl /switch/.overlays/
delete /config/ultrahand/downloads/edizon-overlay-api.json
[Fizeau]
[Fizeau - 2.8.2+r3]
try:
download https://api.github.com/repos/ppkantorski/Fizeau/releases?per_page=1 /config/ultrahand/downloads/fizeau-api.json
json_file /config/ultrahand/downloads/fizeau-api.json
@@ -25,7 +25,7 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
mv /config/ultrahand/downloads/fizeau.ovl /switch/.overlays/
delete /config/ultrahand/downloads/fizeau-api.json
[FPSLocker]
[FPSLocker - 3.3.1+r1]
try:
download https://api.github.com/repos/ppkantorski/FPSLocker/releases?per_page=1 /config/ultrahand/downloads/fpslocker-api.json
json_file /config/ultrahand/downloads/fpslocker-api.json
@@ -33,7 +33,7 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
mv /config/ultrahand/downloads/fpslocker.ovl /switch/.overlays/
delete /config/ultrahand/downloads/fpslocker-api.json
[ldn-mitm]
[ldn-mitm - 1.20.2]
try:
download https://api.github.com/repos/DefenderOfHyrule/ldn_mitm/releases?per_page=1 /config/ultrahand/downloads/ldn-mitm-api.json
json_file /config/ultrahand/downloads/ldn-mitm-api.json
@@ -42,7 +42,7 @@ unzip /config/ultrahand/downloads/ldn-mitm.zip /
delete /config/ultrahand/downloads/ldn-mitm-api.json
delete /config/ultrahand/downloads/ldn-mitm.zip
[Memory-Kit]
[Memory-Kit - 1.0.0]
try:
download https://api.github.com/repos/ppkantorski/Memory-Kit/releases?per_page=1 /config/ultrahand/downloads/memory-kit-api.json
json_file /config/ultrahand/downloads/memory-kit-api.json
@@ -51,7 +51,7 @@ unzip /config/ultrahand/downloads/memory-kit.zip /
delete /config/ultrahand/downloads/memory-kit-api.json
delete /config/ultrahand/downloads/memory-kit.zip
[MissionControl]
[MissionControl - 0.14.2]
try:
download https://api.github.com/repos/ndeadly/MissionControl/releases?per_page=1 /config/ultrahand/downloads/missioncontrol-api.json
json_file /config/ultrahand/downloads/missioncontrol-api.json
@@ -60,7 +60,7 @@ unzip /config/ultrahand/downloads/missioncontrol.zip /
delete /config/ultrahand/downloads/missioncontrol-api.json
delete /config/ultrahand/downloads/missioncontrol.zip
[NX-FanControl]
[NX-FanControl - 1.0.3]
try:
download https://api.github.com/repos/auggeythecat/NX-FanControl-recomp/releases?per_page=1 /config/ultrahand/downloads/nx-fancontrol-api.json
json_file /config/ultrahand/downloads/nx-fancontrol-api.json
@@ -69,7 +69,7 @@ unzip /config/ultrahand/downloads/nx-fancontrol.zip /
delete /config/ultrahand/downloads/nx-fancontrol-api.json
delete /config/ultrahand/downloads/nx-fancontrol.zip
[ovl-sysmodules]
[ovl-sysmodules - 1.4.8]
try:
download https://api.github.com/repos/ppkantorski/ovl-sysmodules/releases?per_page=1 /config/ultrahand/downloads/ovl-sysmodules-api.json
json_file /config/ultrahand/downloads/ovl-sysmodules-api.json
@@ -77,7 +77,7 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
mv /config/ultrahand/downloads/ovl-sysmodules.ovl /switch/.overlays/
delete /config/ultrahand/downloads/ovl-sysmodules-api.json
[QuickNTP]
[QuickNTP - 1.6.0+r3]
try:
download https://api.github.com/repos/ppkantorski/QuickNTP/releases?per_page=1 /config/ultrahand/downloads/quickntp-api.json
json_file /config/ultrahand/downloads/quickntp-api.json
@@ -85,7 +85,7 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
mv /config/ultrahand/downloads/quickntp.ovl /switch/.overlays/
delete /config/ultrahand/downloads/quickntp-api.json
[SaltyNX]
[SaltyNX - 1.7.4]
try:
download https://api.github.com/repos/masagrator/SaltyNX/releases?per_page=1 /config/ultrahand/downloads/saltynx-api.json
json_file /config/ultrahand/downloads/saltynx-api.json
@@ -94,7 +94,7 @@ unzip /config/ultrahand/downloads/saltynx.zip /
delete /config/ultrahand/downloads/saltynx-api.json
delete /config/ultrahand/downloads/saltynx.zip
[Status-Monitor-Overlay]
[Status-Monitor-Overlay - 1.3.2+r7]
try:
download https://api.github.com/repos/ppkantorski/Status-Monitor-Overlay/releases?per_page=1 /config/ultrahand/downloads/status-monitor-overlay-api.json
json_file /config/ultrahand/downloads/status-monitor-overlay-api.json
@@ -102,7 +102,7 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
mv /config/ultrahand/downloads/status-monitor-overlay.ovl /switch/.overlays/
delete /config/ultrahand/downloads/status-monitor-overlay-api.json
[sys-botbase]
[sys-botbase - 2.41]
try:
download https://api.github.com/repos/olliz0r/sys-botbase/releases?per_page=1 /config/ultrahand/downloads/sys-botbase-api.json
json_file /config/ultrahand/downloads/sys-botbase-api.json
@@ -111,7 +111,7 @@ unzip /config/ultrahand/downloads/sys-botbase.zip /
delete /config/ultrahand/downloads/sys-botbase-api.json
delete /config/ultrahand/downloads/sys-botbase.zip
[sys-clk]
[sys-clk - 2.0.1+r22]
try:
download https://api.github.com/repos/ppkantorski/sys-clk/releases?per_page=1 /config/ultrahand/downloads/sys-clk-api.json
json_file /config/ultrahand/downloads/sys-clk-api.json
@@ -120,7 +120,7 @@ unzip /config/ultrahand/downloads/sys-clk.zip /
delete /config/ultrahand/downloads/sys-clk-api.json
delete /config/ultrahand/downloads/sys-clk.zip
[sys-patch]
[sys-patch - 1.6.0]
try:
download https://api.github.com/repos/impeeza/sys-patch/releases?per_page=1 /config/ultrahand/downloads/sys-patch-api.json
json_file /config/ultrahand/downloads/sys-patch-api.json
@@ -129,7 +129,7 @@ unzip /config/ultrahand/downloads/sys-patch.zip /
delete /config/ultrahand/downloads/sys-patch-api.json
delete /config/ultrahand/downloads/sys-patch.zip
[TriPlayer]
[TriPlayer - 2.2.6]
try:
download https://api.github.com/repos/DefenderOfHyrule/TriPlayer/releases?per_page=1 /config/ultrahand/downloads/triplayer-api.json
json_file /config/ultrahand/downloads/triplayer-api.json

View File

@@ -1,2 +1,2 @@
[OmniNX Downloader]
version=1.0.0
[Current]
omninx_downloader=1.0.0-b2

View File

@@ -1,3 +1,4 @@
[Release Info]
pack_version=1.0.0
omninx_pack=1.0.0-b7
omninx_downloader=1.0.0-b2
firmware_version=21.2.0

View File

@@ -2,32 +2,32 @@
make /config/omninx/manifest.ini
set-ini-val ./include/updater/config.ini 'OmniNX' footer ''
set-ini-val ./include/updater/config.ini 'Switch Firmware' footer ''
set-ini-val ./include/updater/config.ini 'Omni Downloader' footer ''
set-ini-val ./include/updater/config.ini 'OmniNX Downloader' footer ''
try:
download https://git.niklascfw.de/OmniNX/OmniNX-Downloader/raw/branch/main/include/updater/RELEASE.ini ./include/updater/RELEASE.ini
ini_file ./include/updater/RELEASE.ini
set-ini-val ./include/updater/config.ini 'OmniNX' footer '{ini_file(Release Info,pack_version)}'
set-ini-val ./include/updater/config.ini 'OmniNX' footer '{ini_file(Release Info,omninx_pack)}'
ini_file /config/omninx/manifest.ini
json '{"null":"true","{ini_file(OmniNX,version)}":"false"}'
ini_file ./include/updater/RELEASE.ini
set-ini-val ./include/updater/config.ini 'OmniNX' footer_highlight '{json({ini_file(Release Info,pack_version)})}'
set-ini-val ./include/updater/config.ini 'OmniNX' footer_highlight '{json({ini_file(Release Info,omninx_pack)})}'
set-ini-val ./include/updater/config.ini 'Switch Firmware' footer '{ini_file(Release Info,firmware_version)}'
json '{"null":"true","{hos_version}":"false"}'
set-ini-val ./include/updater/config.ini 'Switch Firmware' footer_highlight '{json({ini_file(Release Info,firmware_version)})}'
set-ini-val ./include/updater/config.ini 'Omni Downloader' footer '{ini_file(Release Info,pack_version)}'
set-ini-val ./include/updater/config.ini 'OmniNX Downloader' footer '{ini_file(Release Info,omninx_downloader)}'
ini_file ./include/updater/CURRENT.ini
json '{"null":"true","{ini_file(OmniNX Downloader,version)}":"false"}'
json '{"null":"true","{ini_file(Current,omninx_downloader)}":"false"}'
ini_file ./include/updater/RELEASE.ini
set-ini-val ./include/updater/config.ini 'Omni Downloader' footer_highlight '{json({ini_file(Release Info,pack_version)})}'
set-ini-val ./include/updater/config.ini 'OmniNX Downloader' footer_highlight '{json({ini_file(Release Info,omninx_downloader)})}'
ini_file /config/omninx/manifest.ini
json '{"null":"notify","{ini_file(OmniNX,version)}":""}'
ini_file ./include/updater/RELEASE.ini
'{json({ini_file(Release Info,pack_version)})}' '{WARNING_SYMBOL} Pack update verfügbar!' 24
'{json({ini_file(Release Info,omninx_pack)})}' '{WARNING_SYMBOL} Pack update verfügbar!' 24
ini_file ./include/updater/RELEASE.ini
json '{"null":"notify","{hos_version}":""}'

View File

@@ -2,7 +2,6 @@
;creator=Woody2408, NiklasCFW
;version=1.0.0
;about='OmniNX Updater'
;show_widget=true
[@CFW Pack]
@@ -68,9 +67,9 @@ notify '{WARNING_SYMBOL} Führe in Daybreak fort' 24
;background=true
;gap=20
ini_file './CURRENT.ini'
'Zurzeit installiert' = '{ini_file(OmniNX Downloader,version)}'
'Zurzeit installiert' = '{ini_file(Current,omninx_downloader)}'
[Omni Downloader]
[OmniNX Downloader]
try:
download https://git.niklascfw.de/api/v1/repos/OmniNX/OmniNX-Downloader/releases?limit=1 /config/ultrahand/downloads/omni-downloader-api.json
json_file /config/ultrahand/downloads/omni-downloader-api.json