Merge pull request #10 from marco-calautti/master

Refactor module definitions
This commit is contained in:
Slluxx 2020-06-05 20:37:27 +02:00 committed by GitHub
commit 1b32e8bb66
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 788 additions and 1117 deletions

View file

@ -37,17 +37,17 @@ jobs:
- name: Compile DeepSea Zip
run: |
cd ./builder
python ./builder.py deepsea output="./deepsea.zip"
python ./builder.py deepsea.json output="./deepsea.zip"
- name: Compile DeepSea-patches Zip
run: |
cd ./builder
python ./builder.py deepsea-patches output="./deepsea-patched.zip"
python ./builder.py deepsea-patches.json output="./deepsea-patched.zip"
- name: Compile DeepSea-minimal Zip
run: |
cd ./builder
python ./builder.py deepsea-mini output="./deepsea-minimal.zip"
python ./builder.py deepsea-minimal.json output="./deepsea-minimal.zip"
- name: Create Release
id: create_release

View file

@ -22,7 +22,7 @@ DeepSea - The new All-in-One CFW package for the Nintendo Switch.
## How to use
Follow this guide to hack your switch: https://switch.homebrew.guide
Download the latest release and put it on your SD Card\
Download the latest release and put it on your SD Card<br />
Send the Hekate payload to your Switch in RCM mode and launch the CFW
@ -68,4 +68,4 @@ Send the Hekate payload to your Switch in RCM mode and launch the CFW
## Notes
Though we offer a "patched" package that enables the installation and usage of your backup and unlawfully obtained games, we do not condone piracy. The reason we offer this package is because we rather include it ourself instead of letting users go to other sources and use more shady versions of our or other CFW's/packages. Its up to the end user to decide if he wants to be on the good or the bad side, just like in life. The patches used are from [HarukoNX/PKG2-Patches](https://github.com/HarukoNX/PKG2-Patches) and [HarukoNX/ES-Patches](https://github.com/HarukoNX/PKG2-Patches).
We will not offer any kind of support related to the patches or piracy.
We will not offer any kind of support related to the patches or piracy.

View file

@ -1 +1 @@
theme: jekyll-theme-architect
theme: jekyll-theme-cayman

View file

@ -0,0 +1,425 @@
[
{
"name": "Atmosphère",
"download_function_name": "download_atmosphere",
"git": {
"service": 0,
"org_name": "Atmosphere-NX",
"repo_name": "Atmosphere",
"asset_patterns": [
".*atmosphere.*\\.zip",
".*fusee.*\\.bin"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": "must_have"
},
{
"name": "Hekate",
"download_function_name": "download_hekate",
"git": {
"service": 0,
"org_name": "CTCaer",
"repo_name": "hekate",
"asset_patterns": [
".*hekate.*\\.zip"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": "hekate"
},
{
"name": "Hekate Icons",
"download_function_name": "download_hekate_icons",
"git": {
"service": 0,
"org_name": "NicholeMattera",
"repo_name": "Hekate-Icons",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": "hekate_icons"
},
{
"name": "Homebrew App Store",
"download_function_name": "download_appstore",
"git": {
"service": 1,
"org_name": "4TU",
"repo_name": "hb-appstore",
"asset_patterns": [
"\\[.*\\.nro\\.zip\\]\\((.*\\.nro\\.zip)\\)"
],
"group": 0,
"version_pattern": null
},
"sdsetup_module_name": null
},
{
"name": "EdiZon",
"download_function_name": "download_edizon",
"git": {
"service": 0,
"org_name": "WerWolv",
"repo_name": "EdiZon",
"asset_patterns": [
".*\\.nro",
".*\\.ovl"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": null
},
{
"name": "Emuiibo",
"download_function_name": "download_emuiibo",
"git": {
"service": 0,
"org_name": "XorTroll",
"repo_name": "emuiibo",
"asset_patterns": [
".*emuiibo.*\\.zip"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": "emuiibo"
},
{
"name": "Kosmos Cleaner",
"download_function_name": "download_kosmos_cleaner",
"git": {
"service": 0,
"org_name": "AtlasNX",
"repo_name": "Kosmos-Cleaner",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": "kosmos_cleaner"
},
{
"name": "Kosmos Updater",
"download_function_name": "download_kosmos_updater",
"git": {
"service": 0,
"org_name": "AtlasNX",
"repo_name": "Kosmos-Updater",
"asset_patterns": [
".*\\.nro"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": "kosmos_updater"
},
{
"name": "Goldleaf",
"download_function_name": "download_goldleaf",
"git": {
"service": 0,
"org_name": "XorTroll",
"repo_name": "Goldleaf",
"asset_patterns": [
".*\\.nro"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": null
},
{
"name": "Awoo Installer",
"download_function_name": "download_awoo",
"git": {
"service": 0,
"org_name": "Huntereb",
"repo_name": "Awoo-Installer",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": null
},
{
"name": "Kosmos Toolbox",
"download_function_name": "download_kosmos_toolbox",
"git": {
"service": 0,
"org_name": "AtlasNX",
"repo_name": "Kosmos-Toolbox",
"asset_patterns": [
".*\\.nro"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": "kosmos_toolbox"
},
{
"name": "DeepSea Toolbox",
"download_function_name": "download_deepsea_toolbox",
"git": {
"service": 0,
"org_name": "Team-Neptune",
"repo_name": "DeepSea-Toolbox",
"asset_patterns": [
".*\\.nro"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": null
},
{
"name": "DeepSea Updater",
"download_function_name": "download_kosmos_updater",
"git": {
"service": 0,
"org_name": "Team-Neptune",
"repo_name": "DeepSea-Updater",
"asset_patterns": [
".*\\.nro"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": null
},
{
"name": "DeepSea Cleaner",
"download_function_name": "download_deepsea_cleaner",
"git": {
"service": 0,
"org_name": "Team-Neptune",
"repo_name": "DeepSea-Cleaner",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": null
},
{
"name": "JKSV",
"download_function_name": "download_jksv",
"git": {
"service": 0,
"org_name": "J-D-K",
"repo_name": "JKSV",
"asset_patterns": [
".*\\.nro"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": null
},
{
"name": "NXMTP",
"download_function_name": "download_nxmtp",
"git": {
"service": 0,
"org_name": "liuervehc",
"repo_name": "nxmtp",
"asset_patterns": [
".*\\.nro"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": null
},
{
"name": "ldn_mitm",
"download_function_name": "download_ldn_mitm",
"git": {
"service": 0,
"org_name": "spacemeowx2",
"repo_name": "ldn_mitm",
"asset_patterns": [
".*ldn_mitm.*\\.zip"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": "ldn_mitm"
},
{
"name": "Lockpick_RCM",
"download_function_name": "download_lockpick_rcm",
"git": {
"service": 0,
"org_name": "shchmue",
"repo_name": "Lockpick_RCM",
"asset_patterns": [
".*\\.bin"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": "lockpick_rcm"
},
{
"name": "nx-ovlloader",
"download_function_name": "download_nx_ovlloader",
"git": {
"service": 0,
"org_name": "WerWolv",
"repo_name": "nx-ovlloader",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": "nx_ovlloader"
},
{
"name": "ovlSysModules",
"download_function_name": "download_ovl_sysmodules",
"git": {
"service": 0,
"org_name": "WerWolv",
"repo_name": "ovl-sysmodules",
"asset_patterns": [
".*\\.ovl"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": "ovl_sysmodules"
},
{
"name": "Status Monitor Overlay",
"download_function_name": "download_status_monitor_overlay",
"git": {
"service": 0,
"org_name": "masagrator",
"repo_name": "Status-Monitor-Overlay",
"asset_patterns": [
".*\\.ovl"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": "status_monitor_overlay"
},
{
"name": "sys-clk",
"download_function_name": "download_sys_clk",
"git": {
"service": 0,
"org_name": "retronx-team",
"repo_name": "sys-clk",
"asset_patterns": [
".*sys-clk-.*\\.zip"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": "sys_clk"
},
{
"name": "sys-clk-ovl",
"download_function_name": "download_sys_clk_ovl",
"git": {
"service": 0,
"org_name": "Sun-Research-University",
"repo_name": "sys-clk-Overlay",
"asset_patterns": [
".*sys-clk-Overlay.*\\.ovl"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": "sys_clk_ovl"
},
{
"name": "sys-con",
"download_function_name": "download_sys_con",
"git": {
"service": 0,
"org_name": "cathery",
"repo_name": "sys-con",
"asset_patterns": [
".*sys-con-.*\\.zip"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": "sys_con"
},
{
"name": "sys-ftpd-light",
"download_function_name": "download_sys_ftpd_light",
"git": {
"service": 0,
"org_name": "cathery",
"repo_name": "sys-ftpd-light",
"asset_patterns": [
".*sys-ftpd-light.*\\.zip"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": "sys_ftpd"
},
{
"name": "Tesla-Menu",
"download_function_name": "download_tesla_menu",
"git": {
"service": 0,
"org_name": "WerWolv",
"repo_name": "Tesla-Menu",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": "tesla_menu"
},
{
"name": "PKG2-Patches",
"download_function_name": "download_pkg2_patches",
"git": {
"service": 0,
"org_name": "HarukoNX",
"repo_name": "PKG2-Patches",
"asset_patterns": [
".*fusee.*\\.zip",
".*hekate.*\\.zip"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": null
},
{
"name": "ES-Patches",
"download_function_name": "download_es_patches",
"git": {
"service": 0,
"org_name": "HarukoNX",
"repo_name": "ES-Patches",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": null
}
]

View file

@ -26,7 +26,7 @@ import modules
from pathlib import Path
import shutil
import sys
import json
def parse_args():
parser = argparse.ArgumentParser()
@ -36,51 +36,20 @@ def parse_args():
type=str,
help='Overrides the DeepSea Version from the config file.',
metavar='DeepSeaVersion')
subparsers = parser.add_subparsers()
# Kosmos subcommands
parser_kosmos = subparsers.add_parser(
'deepsea', help='Create a release build of DeepSea.')
parser_kosmos.add_argument('output', help='Zip file to create.')
parser_kosmos.set_defaults(command=common.Command.Kosmos)
# SDSetup subcommands
parser_sdsetup = subparsers.add_parser(
'sdsetup', help='Create a DeepSea modules for SDSetup.')
parser_sdsetup.add_argument(
'output', help='Directory to output modules to.')
parser_sdsetup.add_argument(
'-a', '--auto',
action='store_true',
default=False,
help='Perform an auto build.')
parser_sdsetup.set_defaults(command=common.Command.SDSetup)
# Kosmos Minimal subcommands
parser_kosmos = subparsers.add_parser(
'deepsea-mini', help='Create a release build of DeepSea Minimal.')
parser_kosmos.add_argument('output', help='Zip file to create.')
parser_kosmos.set_defaults(command=common.Command.KosmosMinimal)
# Kosmos with patches subcommands
parser_kosmos_patches = subparsers.add_parser(
'deepsea-patches', help='Create a release build of DeepSea with patches.')
parser_kosmos_patches.add_argument('output', help='Zip file to create.')
parser_kosmos_patches.set_defaults(command=common.Command.KosmosPatches)
# Kosmos minimal with patches subcommands
parser_kosmos_minimal_patches = subparsers.add_parser(
'deepsea-mini-patches', help='Create a release build of DeepSea Minimal with patches.')
parser_kosmos_minimal_patches.add_argument('output', help='Zip file to create.')
parser_kosmos_minimal_patches.set_defaults(command=common.Command.KosmosMinimalPatches)
parser.add_argument(
"package_file",
default=None,
type=str,
help="Create a release build using the provided json file.")
parser.add_argument(
"output",
default=None,
type=str,
help='Zip file to create.')
# Parse arguments
args = parser.parse_args()
if not hasattr(args, 'command'):
parser.print_help()
sys.exit()
return args
@ -90,18 +59,9 @@ def get_deepsea_version(args):
return config.version
def init_version_messages(args, kosmos_version):
if args.command == common.Command.Kosmos:
return [f'DeepSea {kosmos_version} built with:']
elif args.command == common.Command.SDSetup and not args.auto:
return ['SDSetup Modules built with:']
elif args.command == common.Command.KosmosMinimal:
return [f'DeepSea Minimal {kosmos_version} built with:']
elif args.command == common.Command.KosmosPatches:
return [f'DeepSea with Patches {kosmos_version} built with:']
elif args.command == common.Command.KosmosMinimalPatches:
return [f'DeepSea Minimal with Patches {kosmos_version} built with:']
return []
def init_version_messages(package_content, kosmos_version):
pkg_name = package_content['package_name']
return [f'{pkg_name} {kosmos_version} built with:']
if __name__ == '__main__':
@ -115,17 +75,20 @@ if __name__ == '__main__':
if hasattr(args, 'auto'):
auto_build = args.auto
version_messages = init_version_messages(args, deepsea_version)
with open(args.package_file,'r') as pkgfile:
package_content = json.load(pkgfile)
version_messages = init_version_messages(package_content, deepsea_version)
build_messages = modules.build(
temp_directory, deepsea_version, args.command, auto_build)
temp_directory, deepsea_version, package_content, auto_build)
common.delete(args.output)
if build_messages is not None:
version_messages += build_messages
if args.command == common.Command.SDSetup:
if package_content['is_sdsetup']:
common.move(temp_directory, args.output)
else:
shutil.make_archive(

View file

@ -25,13 +25,6 @@ import re
import shutil
import uuid
class Command(enum.Enum):
Kosmos = 0
SDSetup = 1
KosmosMinimal = 2
KosmosPatches = 3
KosmosMinimalPatches = 4
class GitService(enum.Enum):
GitHub = 0
GitLab = 1

View file

@ -1,64 +1,22 @@
[
{
"name": "Atmosphère",
"download_function_name": "download_atmosphere",
"git": {
"service": 0,
"org_name": "Atmosphere-NX",
"repo_name": "Atmosphere",
"asset_patterns": [
".*atmosphere.*\\.zip",
".*fusee.*\\.bin"
],
"group": null,
"version_pattern": null
{
"package_name": "DeepSea Minimal with Patches",
"is_sdsetup": false,
"modules": [
{
"module_name": "Atmosphère",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "Hekate",
"download_function_name": "download_hekate",
"git": {
"service": 0,
"org_name": "CTCaer",
"repo_name": "hekate",
"asset_patterns": [
".*hekate.*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "Hekate",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "PKG2-Patches",
"download_function_name": "download_pkg2_patches",
"git": {
"service": 0,
"org_name": "HarukoNX",
"repo_name": "PKG2-Patches",
"asset_patterns": [
".*fusee.*\\.zip",
".*hekate.*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "PKG2-Patches",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "ES-Patches",
"download_function_name": "download_es_patches",
"git": {
"service": 0,
"org_name": "HarukoNX",
"repo_name": "ES-Patches",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": null
}
]
{
"module_name": "ES-Patches",
"parameters": null
}
]
}

View file

@ -1,33 +1,14 @@
[
{
"name": "Atmosphère",
"download_function_name": "download_atmosphere",
"git": {
"service": 0,
"org_name": "Atmosphere-NX",
"repo_name": "Atmosphere",
"asset_patterns": [
".*atmosphere.*\\.zip",
".*fusee.*\\.bin"
],
"group": null,
"version_pattern": null
{
"package_name": "DeepSea Minimal",
"is_sdsetup": false,
"modules": [
{
"module_name": "Atmosphère",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "Hekate",
"download_function_name": "download_hekate",
"git": {
"service": 0,
"org_name": "CTCaer",
"repo_name": "hekate",
"asset_patterns": [
".*hekate.*\\.zip"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": null
}
]
{
"module_name": "Hekate",
"parameters": null
}
]
}

View file

@ -1,365 +1,106 @@
[
{
"name": "Atmosphère",
"download_function_name": "download_atmosphere",
"git": {
"service": 0,
"org_name": "Atmosphere-NX",
"repo_name": "Atmosphere",
"asset_patterns": [
".*atmosphere.*\\.zip",
".*fusee.*\\.bin"
],
"group": null,
"version_pattern": null
{
"package_name": "DeepSea with Patches",
"is_sdsetup": false,
"modules": [
{
"module_name": "Atmosphère",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "Hekate",
"download_function_name": "download_hekate",
"git": {
"service": 0,
"org_name": "CTCaer",
"repo_name": "hekate",
"asset_patterns": [
".*hekate.*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "Hekate",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "Hekate Icons",
"download_function_name": "download_hekate_icons",
"git": {
"service": 0,
"org_name": "NicholeMattera",
"repo_name": "Hekate-Icons",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "Hekate Icons",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "Homebrew App Store",
"download_function_name": "download_appstore",
"git": {
"service": 1,
"org_name": "4TU",
"repo_name": "hb-appstore",
"asset_patterns": [
"\\[.*\\.nro\\.zip\\]\\((.*\\.nro\\.zip)\\)"
],
"group": 0,
"version_pattern": null
{
"module_name": "Homebrew App Store",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "EdiZon",
"download_function_name": "download_edizon",
"git": {
"service": 0,
"org_name": "WerWolv",
"repo_name": "EdiZon",
"asset_patterns": [
".*\\.nro",
".*\\.ovl"
],
"group": null,
"version_pattern": null
{
"module_name": "EdiZon",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "Emuiibo",
"download_function_name": "download_emuiibo",
"git": {
"service": 0,
"org_name": "XorTroll",
"repo_name": "emuiibo",
"asset_patterns": [
".*emuiibo.*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "Emuiibo",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "Goldleaf",
"download_function_name": "download_goldleaf",
"git": {
"service": 0,
"org_name": "XorTroll",
"repo_name": "Goldleaf",
"asset_patterns": [
".*\\.nro"
],
"group": null,
"version_pattern": null
{
"module_name": "Goldleaf",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "Awoo Installer",
"download_function_name": "download_awoo",
"git": {
"service": 0,
"org_name": "Huntereb",
"repo_name": "Awoo-Installer",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "Awoo Installer",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "DeepSea Toolbox",
"download_function_name": "download_deepsea_toolbox",
"git": {
"service": 0,
"org_name": "Team-Neptune",
"repo_name": "DeepSea-Toolbox",
"asset_patterns": [
".*\\.nro"
],
"group": null,
"version_pattern": null
{
"module_name": "DeepSea Toolbox",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "DeepSea Updater",
"download_function_name": "download_kosmos_updater",
"git": {
"service": 0,
"org_name": "Team-Neptune",
"repo_name": "DeepSea-Updater",
"asset_patterns": [
".*\\.nro"
],
"group": null,
"version_pattern": null
{
"module_name": "DeepSea Updater",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "DeepSea Cleaner",
"download_function_name": "download_deepsea_cleaner",
"git": {
"service": 0,
"org_name": "Team-Neptune",
"repo_name": "DeepSea-Cleaner",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "DeepSea Cleaner",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "JKSV",
"download_function_name": "download_jksv",
"git": {
"service": 0,
"org_name": "J-D-K",
"repo_name": "JKSV",
"asset_patterns": [
".*\\.nro"
],
"group": null,
"version_pattern": null
{
"module_name": "JKSV",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "NXMTP",
"download_function_name": "download_nxmtp",
"git": {
"service": 0,
"org_name": "liuervehc",
"repo_name": "nxmtp",
"asset_patterns": [
".*\\.nro"
],
"group": null,
"version_pattern": null
{
"module_name": "NXMTP",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "ldn_mitm",
"download_function_name": "download_ldn_mitm",
"git": {
"service": 0,
"org_name": "spacemeowx2",
"repo_name": "ldn_mitm",
"asset_patterns": [
".*ldn_mitm.*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "ldn_mitm",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "Lockpick_RCM",
"download_function_name": "download_lockpick_rcm",
"git": {
"service": 0,
"org_name": "shchmue",
"repo_name": "Lockpick_RCM",
"asset_patterns": [
".*\\.bin"
],
"group": null,
"version_pattern": null
{
"module_name": "Lockpick_RCM",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "nx-ovlloader",
"download_function_name": "download_nx_ovlloader",
"git": {
"service": 0,
"org_name": "WerWolv",
"repo_name": "nx-ovlloader",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "nx-ovlloader",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "ovlSysModules",
"download_function_name": "download_ovl_sysmodules",
"git": {
"service": 0,
"org_name": "WerWolv",
"repo_name": "ovl-sysmodules",
"asset_patterns": [
".*\\.ovl"
],
"group": null,
"version_pattern": null
{
"module_name": "ovlSysModules",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "Status Monitor Overlay",
"download_function_name": "download_status_monitor_overlay",
"git": {
"service": 0,
"org_name": "masagrator",
"repo_name": "Status-Monitor-Overlay",
"asset_patterns": [
".*\\.ovl"
],
"group": null,
"version_pattern": null
{
"module_name": "Status Monitor Overlay",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "sys-clk",
"download_function_name": "download_sys_clk",
"git": {
"service": 0,
"org_name": "retronx-team",
"repo_name": "sys-clk",
"asset_patterns": [
".*sys-clk-.*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "sys-clk",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "sys-con",
"download_function_name": "download_sys_con",
"git": {
"service": 0,
"org_name": "cathery",
"repo_name": "sys-con",
"asset_patterns": [
".*sys-con-.*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "sys-clk-ovl",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "sys-ftpd-light",
"download_function_name": "download_sys_ftpd_light",
"git": {
"service": 0,
"org_name": "cathery",
"repo_name": "sys-ftpd-light",
"asset_patterns": [
".*sys-ftpd-light.*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "sys-con",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "Tesla-Menu",
"download_function_name": "download_tesla_menu",
"git": {
"service": 0,
"org_name": "WerWolv",
"repo_name": "Tesla-Menu",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "sys-ftpd-light",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "PKG2-Patches",
"download_function_name": "download_pkg2_patches",
"git": {
"service": 0,
"org_name": "HarukoNX",
"repo_name": "PKG2-Patches",
"asset_patterns": [
".*fusee.*\\.zip",
".*hekate.*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "Tesla-Menu",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "ES-Patches",
"download_function_name": "download_es_patches",
"git": {
"service": 0,
"org_name": "HarukoNX",
"repo_name": "ES-Patches",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "PKG2-Patches",
"parameters": null
},
"sdsetup_module_name": null
}
]
{
"module_name": "ES-Patches",
"parameters": null
}
]
}

View file

@ -1,334 +1,98 @@
[
{
"name": "Atmosphère",
"download_function_name": "download_atmosphere",
"git": {
"service": 0,
"org_name": "Atmosphere-NX",
"repo_name": "Atmosphere",
"asset_patterns": [
".*atmosphere.*\\.zip",
".*fusee.*\\.bin"
],
"group": null,
"version_pattern": null
{
"package_name": "DeepSea",
"is_sdsetup": false,
"modules": [
{
"module_name": "Atmosphère",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "Hekate",
"download_function_name": "download_hekate",
"git": {
"service": 0,
"org_name": "CTCaer",
"repo_name": "hekate",
"asset_patterns": [
".*hekate.*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "Hekate",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "Hekate Icons",
"download_function_name": "download_hekate_icons",
"git": {
"service": 0,
"org_name": "NicholeMattera",
"repo_name": "Hekate-Icons",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "Hekate Icons",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "Homebrew App Store",
"download_function_name": "download_appstore",
"git": {
"service": 1,
"org_name": "4TU",
"repo_name": "hb-appstore",
"asset_patterns": [
"\\[.*\\.nro\\.zip\\]\\((.*\\.nro\\.zip)\\)"
],
"group": 0,
"version_pattern": null
{
"module_name": "Homebrew App Store",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "EdiZon",
"download_function_name": "download_edizon",
"git": {
"service": 0,
"org_name": "WerWolv",
"repo_name": "EdiZon",
"asset_patterns": [
".*\\.nro",
".*\\.ovl"
],
"group": null,
"version_pattern": null
{
"module_name": "EdiZon",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "Emuiibo",
"download_function_name": "download_emuiibo",
"git": {
"service": 0,
"org_name": "XorTroll",
"repo_name": "emuiibo",
"asset_patterns": [
".*emuiibo.*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "Emuiibo",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "Goldleaf",
"download_function_name": "download_goldleaf",
"git": {
"service": 0,
"org_name": "XorTroll",
"repo_name": "Goldleaf",
"asset_patterns": [
".*\\.nro"
],
"group": null,
"version_pattern": null
{
"module_name": "Goldleaf",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "Awoo Installer",
"download_function_name": "download_awoo",
"git": {
"service": 0,
"org_name": "Huntereb",
"repo_name": "Awoo-Installer",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "Awoo Installer",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "DeepSea Toolbox",
"download_function_name": "download_deepsea_toolbox",
"git": {
"service": 0,
"org_name": "Team-Neptune",
"repo_name": "DeepSea-Toolbox",
"asset_patterns": [
".*\\.nro"
],
"group": null,
"version_pattern": null
{
"module_name": "DeepSea Toolbox",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "DeepSea Updater",
"download_function_name": "download_kosmos_updater",
"git": {
"service": 0,
"org_name": "Team-Neptune",
"repo_name": "DeepSea-Updater",
"asset_patterns": [
".*\\.nro"
],
"group": null,
"version_pattern": null
{
"module_name": "DeepSea Updater",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "DeepSea Cleaner",
"download_function_name": "download_deepsea_cleaner",
"git": {
"service": 0,
"org_name": "Team-Neptune",
"repo_name": "DeepSea-Cleaner",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "DeepSea Cleaner",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "JKSV",
"download_function_name": "download_jksv",
"git": {
"service": 0,
"org_name": "J-D-K",
"repo_name": "JKSV",
"asset_patterns": [
".*\\.nro"
],
"group": null,
"version_pattern": null
{
"module_name": "JKSV",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "NXMTP",
"download_function_name": "download_nxmtp",
"git": {
"service": 0,
"org_name": "liuervehc",
"repo_name": "nxmtp",
"asset_patterns": [
".*\\.nro"
],
"group": null,
"version_pattern": null
{
"module_name": "NXMTP",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "ldn_mitm",
"download_function_name": "download_ldn_mitm",
"git": {
"service": 0,
"org_name": "spacemeowx2",
"repo_name": "ldn_mitm",
"asset_patterns": [
".*ldn_mitm.*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "ldn_mitm",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "Lockpick_RCM",
"download_function_name": "download_lockpick_rcm",
"git": {
"service": 0,
"org_name": "shchmue",
"repo_name": "Lockpick_RCM",
"asset_patterns": [
".*\\.bin"
],
"group": null,
"version_pattern": null
{
"module_name": "Lockpick_RCM",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "nx-ovlloader",
"download_function_name": "download_nx_ovlloader",
"git": {
"service": 0,
"org_name": "WerWolv",
"repo_name": "nx-ovlloader",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "nx-ovlloader",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "ovlSysModules",
"download_function_name": "download_ovl_sysmodules",
"git": {
"service": 0,
"org_name": "WerWolv",
"repo_name": "ovl-sysmodules",
"asset_patterns": [
".*\\.ovl"
],
"group": null,
"version_pattern": null
{
"module_name": "ovlSysModules",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "Status Monitor Overlay",
"download_function_name": "download_status_monitor_overlay",
"git": {
"service": 0,
"org_name": "masagrator",
"repo_name": "Status-Monitor-Overlay",
"asset_patterns": [
".*\\.ovl"
],
"group": null,
"version_pattern": null
{
"module_name": "Status Monitor Overlay",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "sys-clk",
"download_function_name": "download_sys_clk",
"git": {
"service": 0,
"org_name": "retronx-team",
"repo_name": "sys-clk",
"asset_patterns": [
".*sys-clk-.*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "sys-clk",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "sys-con",
"download_function_name": "download_sys_con",
"git": {
"service": 0,
"org_name": "cathery",
"repo_name": "sys-con",
"asset_patterns": [
".*sys-con-.*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "sys-clk-ovl",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "sys-ftpd-light",
"download_function_name": "download_sys_ftpd_light",
"git": {
"service": 0,
"org_name": "cathery",
"repo_name": "sys-ftpd-light",
"asset_patterns": [
".*sys-ftpd-light.*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "sys-con",
"parameters": null
},
"sdsetup_module_name": null
},
{
"name": "Tesla-Menu",
"download_function_name": "download_tesla_menu",
"git": {
"service": 0,
"org_name": "WerWolv",
"repo_name": "Tesla-Menu",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "sys-ftpd-light",
"parameters": null
},
"sdsetup_module_name": null
}
]
{
"module_name": "Tesla-Menu",
"parameters": null
}
]
}

View file

@ -183,7 +183,7 @@ def get_version(module, release, index):
return groups[0]
def download_atmosphere(module, temp_directory, deepsea_version, deepsea_build):
def download_atmosphere(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
bundle_path = download_asset(module, release, 0)
if bundle_path is None:
@ -214,7 +214,7 @@ def download_atmosphere(module, temp_directory, deepsea_version, deepsea_build):
return get_version(module, release, 0)
def download_hekate(module, temp_directory, deepsea_version, deepsea_build):
def download_hekate(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
bundle_path = download_asset(module, release, 0)
if bundle_path is None:
@ -254,7 +254,7 @@ def download_hekate(module, temp_directory, deepsea_version, deepsea_build):
return get_version(module, release, 0)
def download_hekate_icons(module, temp_directory, deepsea_version, deepsea_build):
def download_hekate_icons(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
bundle_path = download_asset(module, release, 0)
if bundle_path is None:
@ -279,7 +279,7 @@ def download_hekate_icons(module, temp_directory, deepsea_version, deepsea_build
return get_version(module, release, 0)
def download_appstore(module, temp_directory, deepsea_version, deepsea_build):
def download_appstore(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
bundle_path = download_asset(module, release, 0)
if bundle_path is None:
@ -296,7 +296,7 @@ def download_appstore(module, temp_directory, deepsea_version, deepsea_build):
return get_version(module, release, 0)
def download_edizon(module, temp_directory, deepsea_version, deepsea_build):
def download_edizon(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
app_path = download_asset(module, release, 0)
if app_path is None:
@ -316,7 +316,7 @@ def download_edizon(module, temp_directory, deepsea_version, deepsea_build):
return get_version(module, release, 0)
def download_emuiibo(module, temp_directory, deepsea_version, deepsea_build):
def download_emuiibo(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
bundle_path = download_asset(module, release, 0)
if bundle_path is None:
@ -342,7 +342,7 @@ def download_emuiibo(module, temp_directory, deepsea_version, deepsea_build):
return get_version(module, release, 0)
def download_goldleaf(module, temp_directory, deepsea_version, deepsea_build):
def download_goldleaf(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
app_path = download_asset(module, release, 0)
if app_path is None:
@ -355,7 +355,7 @@ def download_goldleaf(module, temp_directory, deepsea_version, deepsea_build):
return get_version(module, release, 0)
def download_deepsea_cleaner(module, temp_directory, deepsea_version, deepsea_build):
def download_deepsea_cleaner(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
bundle_path = download_asset(module, release, 0)
if bundle_path is None:
@ -367,7 +367,7 @@ def download_deepsea_cleaner(module, temp_directory, deepsea_version, deepsea_bu
return get_version(module, release, 0)
def download_deepsea_toolbox(module, temp_directory, deepsea_version, deepsea_build):
def download_deepsea_toolbox(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
app_path = download_asset(module, release, 0)
if app_path is None:
@ -384,7 +384,7 @@ def download_deepsea_toolbox(module, temp_directory, deepsea_version, deepsea_bu
return get_version(module, release, 0)
def download_kosmos_updater(module, temp_directory, deepsea_version, deepsea_build):
def download_kosmos_updater(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
app_path = download_asset(module, release, 0)
if app_path is None:
@ -401,7 +401,7 @@ def download_kosmos_updater(module, temp_directory, deepsea_version, deepsea_bui
return get_version(module, release, 0)
def download_ldn_mitm(module, temp_directory, deepsea_version, deepsea_build):
def download_ldn_mitm(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
bundle_path = download_asset(module, release, 0)
if bundle_path is None:
@ -420,7 +420,7 @@ def download_ldn_mitm(module, temp_directory, deepsea_version, deepsea_build):
return get_version(module, release, 0)
def download_lockpick(module, temp_directory, deepsea_version, deepsea_build):
def download_lockpick(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
app_path = download_asset(module, release, 0)
if app_path is None:
@ -433,7 +433,7 @@ def download_lockpick(module, temp_directory, deepsea_version, deepsea_build):
return get_version(module, release, 0)
def download_lockpick_rcm(module, temp_directory, deepsea_version, deepsea_build):
def download_lockpick_rcm(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
payload_path = download_asset(module, release, 0)
if payload_path is None:
@ -449,7 +449,7 @@ def download_lockpick_rcm(module, temp_directory, deepsea_version, deepsea_build
return get_version(module, release, 0)
def download_nxdumptool(module, temp_directory, deepsea_version, deepsea_build):
def download_nxdumptool(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
app_path = download_asset(module, release, 0)
if app_path is None:
@ -462,7 +462,7 @@ def download_nxdumptool(module, temp_directory, deepsea_version, deepsea_build):
return get_version(module, release, 0)
def download_nx_ovlloader(module, temp_directory, deepsea_version, deepsea_build):
def download_nx_ovlloader(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
bundle_path = download_asset(module, release, 0)
if bundle_path is None:
@ -476,7 +476,7 @@ def download_nx_ovlloader(module, temp_directory, deepsea_version, deepsea_build
return get_version(module, release, 0)
def download_ovl_sysmodules(module, temp_directory, deepsea_version, deepsea_build):
def download_ovl_sysmodules(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
app_path = download_asset(module, release, 0)
if app_path is None:
@ -489,7 +489,7 @@ def download_ovl_sysmodules(module, temp_directory, deepsea_version, deepsea_bui
return get_version(module, release, 0)
def download_status_monitor_overlay(module, temp_directory, deepsea_version, deepsea_build):
def download_status_monitor_overlay(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
app_path = download_asset(module, release, 0)
if app_path is None:
@ -502,7 +502,7 @@ def download_status_monitor_overlay(module, temp_directory, deepsea_version, dee
return get_version(module, release, 0)
def download_sys_clk(module, temp_directory, deepsea_version, deepsea_build):
def download_sys_clk(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
bundle_path = download_asset(module, release, 0)
if bundle_path is None:
@ -522,7 +522,19 @@ def download_sys_clk(module, temp_directory, deepsea_version, deepsea_build):
return get_version(module, release, 0)
def download_sys_con(module, temp_directory, deepsea_version, deepsea_build):
def download_sys_clk_ovl(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
app_path = download_asset(module, release, 0)
if app_path is None:
return None
common.move(app_path, temp_directory.joinpath(
'switch/.overlays/sys-clk-Overlay.ovl'))
return get_version(module, release, 0)
def download_sys_con(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
bundle_path = download_asset(module, release, 0)
if bundle_path is None:
@ -539,7 +551,7 @@ def download_sys_con(module, temp_directory, deepsea_version, deepsea_build):
return get_version(module, release, 0)
def download_sys_ftpd_light(module, temp_directory, deepsea_version, deepsea_build):
def download_sys_ftpd_light(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
bundle_path = download_asset(module, release, 0)
if bundle_path is None:
@ -556,7 +568,7 @@ def download_sys_ftpd_light(module, temp_directory, deepsea_version, deepsea_bui
return get_version(module, release, 0)
def download_tesla_menu(module, temp_directory, deepsea_version, deepsea_build):
def download_tesla_menu(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
bundle_path = download_asset(module, release, 0)
if bundle_path is None:
@ -570,7 +582,7 @@ def download_tesla_menu(module, temp_directory, deepsea_version, deepsea_build):
return get_version(module, release, 0)
def download_awoo(module, temp_directory, deepsea_version, deepsea_build):
def download_awoo(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
app_path = download_asset(module, release, 0)
if app_path is None:
@ -582,7 +594,7 @@ def download_awoo(module, temp_directory, deepsea_version, deepsea_build):
return get_version(module, release, 0)
def download_jksv(module, temp_directory, deepsea_version, deepsea_build):
def download_jksv(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
app_path = download_asset(module, release, 0)
if app_path is None:
@ -595,7 +607,7 @@ def download_jksv(module, temp_directory, deepsea_version, deepsea_build):
return get_version(module, release, 0)
def download_nxmtp(module, temp_directory, deepsea_version, deepsea_build):
def download_nxmtp(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
app_path = download_asset(module, release, 0)
if app_path is None:
@ -608,7 +620,7 @@ def download_nxmtp(module, temp_directory, deepsea_version, deepsea_build):
return get_version(module, release, 0)
def download_pkg2_patches(module, temp_directory, deepsea_version, deepsea_build):
def download_pkg2_patches(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
fusee_patches_path = download_asset(module, release, 0)
if fusee_patches_path is None:
@ -635,7 +647,7 @@ def download_pkg2_patches(module, temp_directory, deepsea_version, deepsea_build
return get_version(module, release, 0)
def download_es_patches(module, temp_directory, deepsea_version, deepsea_build):
def download_es_patches(module, temp_directory, deepsea_version, parameters, deepsea_build):
release = get_latest_release(module)
es_patches_path = download_asset(module, release, 0)
if es_patches_path is None:
@ -649,60 +661,67 @@ def download_es_patches(module, temp_directory, deepsea_version, deepsea_build):
return get_version(module, release, 0)
def build(temp_directory, deepsea_version, command, auto_build):
def build(temp_directory, deepsea_version, package_content, auto_build):
results = []
modules_filename = 'deepsea.json'
if command == common.Command.KosmosMinimal:
modules_filename = 'deepsea-minimal.json'
elif command == common.Command.SDSetup:
modules_filename = 'sdsetup.json'
elif command == common.Command.KosmosPatches:
modules_filename = "deepsea-patches.json"
elif command == common.Command.KosmosMinimalPatches:
modules_filename = "deepsea-minimal-patches.json"
# Open up modules-definitions.json first and load all modules
mods_map = {}
with open("Modules/modules-definitions.json") as mod_json_file:
mods_data = json.load(mod_json_file)
for module_def in mods_data:
name = module_def['name']
if name in mods_map:
raise Exception(
'Multiple definitions of module with name '+name)
mods_map[name] = module_def
# Open up modules.json
with open(modules_filename) as json_file:
# Parse JSON
data = json.load(json_file)
data = package_content['modules']
# Loop through modules
for module in data:
# Running a SDSetup Build
if command == common.Command.SDSetup:
# Only show prompts when it's not an auto build.
if not auto_build:
print(f'Downloading {module["name"]}...')
# Loop through modules
for mod_entry in data:
mod_id = mod_entry['module_name']
if mod_id not in mods_map:
raise Exception('Module with name '+mod_id+' does not exist')
# Make sure module directory is created.
module_directory = temp_directory.joinpath(
module['sdsetup_module_name'])
common.mkdir(module_directory)
module = mods_map[mod_id]
parameters = mod_entry.get('parameters')
# Download the module.
download = globals()[module['download_function_name']]
version = download(module, module_directory,
deepsea_version, False)
if version is None:
return None
# Auto builds have a different prompt at the end for parsing.
if auto_build:
results.append(
f'{module["sdsetup_module_name"]}:{version}')
else:
results.append(f' {module["name"]} - {version}')
# Running a Kosmos Build
else:
# Download the module.
# Running a SDSetup Build
if package_content['is_sdsetup']:
# Only show prompts when it's not an auto build.
if not auto_build:
print(f'Downloading {module["name"]}...')
download = globals()[module['download_function_name']]
version = download(module, temp_directory,
deepsea_version, True)
if version is None:
return None
# Make sure module directory is created.
module_directory = temp_directory.joinpath(
module['sdsetup_module_name'])
common.mkdir(module_directory)
# Download the module.
download = globals()[module['download_function_name']]
version = download(module, module_directory,
deepsea_version, parameters, False)
if version is None:
return None
# Auto builds have a different prompt at the end for parsing.
if auto_build:
results.append(
f'{module["sdsetup_module_name"]}:{version}')
else:
results.append(f' {module["name"]} - {version}')
# Running a Kosmos Build
else:
# Download the module.
print(f'Downloading {module["name"]}...')
download = globals()[module['download_function_name']]
version = download(module, temp_directory,
deepsea_version, parameters, True)
if version is None:
return None
results.append(f' {module["name"]} - {version}')
return results

View file

@ -1,243 +1,70 @@
[
{
"name": "Atmosphère",
"download_function_name": "download_atmosphere",
"git": {
"service": 0,
"org_name": "Atmosphere-NX",
"repo_name": "Atmosphere",
"asset_patterns": [
".*atmosphere.*\\.zip",
".*fusee.*\\.bin"
],
"group": null,
"version_pattern": null
{
"package_name": "SDSetup",
"is_sdsetup": true,
"modules": [
{
"module_name": "Atmosphère",
"parameters": null
},
"sdsetup_module_name": "must_have"
},
{
"name": "Hekate",
"download_function_name": "download_hekate",
"git": {
"service": 0,
"org_name": "CTCaer",
"repo_name": "hekate",
"asset_patterns": [
".*hekate.*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "Hekate",
"parameters": null
},
"sdsetup_module_name": "hekate"
},
{
"name": "Hekate Icons",
"download_function_name": "download_hekate_icons",
"git": {
"service": 0,
"org_name": "NicholeMattera",
"repo_name": "Hekate-Icons",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "Hekate Icons",
"parameters": null
},
"sdsetup_module_name": "hekate_icons"
},
{
"name": "Emuiibo",
"download_function_name": "download_emuiibo",
"git": {
"service": 0,
"org_name": "XorTroll",
"repo_name": "emuiibo",
"asset_patterns": [
".*emuiibo.*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "Emuiibo",
"parameters": null
},
"sdsetup_module_name": "emuiibo"
},
{
"name": "Kosmos Cleaner",
"download_function_name": "download_kosmos_cleaner",
"git": {
"service": 0,
"org_name": "AtlasNX",
"repo_name": "Kosmos-Cleaner",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "Kosmos Cleaner",
"parameters": null
},
"sdsetup_module_name": "kosmos_cleaner"
},
{
"name": "Kosmos Toolbox",
"download_function_name": "download_kosmos_toolbox",
"git": {
"service": 0,
"org_name": "AtlasNX",
"repo_name": "Kosmos-Toolbox",
"asset_patterns": [
".*\\.nro"
],
"group": null,
"version_pattern": null
{
"module_name": "Kosmos Toolbox",
"parameters": null
},
"sdsetup_module_name": "kosmos_toolbox"
},
{
"name": "Kosmos Updater",
"download_function_name": "download_kosmos_updater",
"git": {
"service": 0,
"org_name": "AtlasNX",
"repo_name": "Kosmos-Updater",
"asset_patterns": [
".*\\.nro"
],
"group": null,
"version_pattern": null
{
"module_name": "Kosmos Updater",
"parameters": null
},
"sdsetup_module_name": "kosmos_updater"
},
{
"name": "ldn_mitm",
"download_function_name": "download_ldn_mitm",
"git": {
"service": 0,
"org_name": "spacemeowx2",
"repo_name": "ldn_mitm",
"asset_patterns": [
".*ldn_mitm.*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "ldn_mitm",
"parameters": null
},
"sdsetup_module_name": "ldn_mitm"
},
{
"name": "Lockpick_RCM",
"download_function_name": "download_lockpick_rcm",
"git": {
"service": 0,
"org_name": "shchmue",
"repo_name": "Lockpick_RCM",
"asset_patterns": [
".*\\.bin"
],
"group": null,
"version_pattern": null
{
"module_name": "Lockpick_RCM",
"parameters": null
},
"sdsetup_module_name": "lockpick_rcm"
},
{
"name": "nx-ovlloader",
"download_function_name": "download_nx_ovlloader",
"git": {
"service": 0,
"org_name": "WerWolv",
"repo_name": "nx-ovlloader",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "nx-ovlloader",
"parameters": null
},
"sdsetup_module_name": "nx_ovlloader"
},
{
"name": "ovlSysModules",
"download_function_name": "download_ovl_sysmodules",
"git": {
"service": 0,
"org_name": "WerWolv",
"repo_name": "ovl-sysmodules",
"asset_patterns": [
".*\\.ovl"
],
"group": null,
"version_pattern": null
{
"module_name": "ovlSysModules",
"parameters": null
},
"sdsetup_module_name": "ovl_sysmodules"
},
{
"name": "Status Monitor Overlay",
"download_function_name": "download_status_monitor_overlay",
"git": {
"service": 0,
"org_name": "masagrator",
"repo_name": "Status-Monitor-Overlay",
"asset_patterns": [
".*\\.ovl"
],
"group": null,
"version_pattern": null
{
"module_name": "Status Monitor Overlay",
"parameters": null
},
"sdsetup_module_name": "status_monitor_overlay"
},
{
"name": "sys-clk",
"download_function_name": "download_sys_clk",
"git": {
"service": 0,
"org_name": "retronx-team",
"repo_name": "sys-clk",
"asset_patterns": [
".*sys-clk-.*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "sys-clk",
"parameters": null
},
"sdsetup_module_name": "sys_clk"
},
{
"name": "sys-con",
"download_function_name": "download_sys_con",
"git": {
"service": 0,
"org_name": "cathery",
"repo_name": "sys-con",
"asset_patterns": [
".*sys-con-.*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "sys-con",
"parameters": null
},
"sdsetup_module_name": "sys_con"
},
{
"name": "sys-ftpd-light",
"download_function_name": "download_sys_ftpd_light",
"git": {
"service": 0,
"org_name": "cathery",
"repo_name": "sys-ftpd-light",
"asset_patterns": [
".*sys-ftpd-light.*\\.zip"
],
"group": null,
"version_pattern": null
{
"module_name": "sys-ftpd-light",
"parameters": null
},
"sdsetup_module_name": "sys_ftpd"
},
{
"name": "Tesla-Menu",
"download_function_name": "download_tesla_menu",
"git": {
"service": 0,
"org_name": "WerWolv",
"repo_name": "Tesla-Menu",
"asset_patterns": [
".*\\.zip"
],
"group": null,
"version_pattern": null
},
"sdsetup_module_name": "tesla_menu"
}
]
{
"module_name": "Tesla-Menu",
"parameters": null
}
]
}