From d438689cde4e9c802eca00d8a258e2d337cfd4b3 Mon Sep 17 00:00:00 2001 From: Alexander Tarasov Date: Wed, 19 Nov 2025 06:12:55 +0300 Subject: [PATCH] remove rust project --- .github/workflows/release.yml | 72 -------------- .gitmodules | 2 +- Cargo.lock | 95 ------------------ Cargo.toml | 22 ----- build.rs | 54 ----------- src/main.rs | 178 ---------------------------------- switch-tools | 2 +- 7 files changed, 2 insertions(+), 423 deletions(-) delete mode 100644 .github/workflows/release.yml delete mode 100644 Cargo.lock delete mode 100644 Cargo.toml delete mode 100644 build.rs delete mode 100644 src/main.rs diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 665c151..0000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,72 +0,0 @@ -name: Release Build - -on: - release: - types: [published] - workflow_dispatch: - -jobs: - build: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, windows-latest, macos-latest] - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: true - - - name: Install build dependencies (Linux) - if: runner.os == 'Linux' - run: sudo apt-get update && sudo apt-get install -y autoconf automake libtool - - - name: Install build dependencies (macOS) - if: runner.os == 'macOS' - run: brew install autoconf automake libtool - - - name: Install build dependencies (Windows) - if: runner.os == 'Windows' - uses: msys2/setup-msys2@v2 - with: - msystem: MINGW64 - update: true - install: autoconf automake libtool make m4 perl autotools - run: whereis aclocal - - - name: Install Rust - uses: dtolnay/rust-toolchain@stable - with: - toolchain: stable - - - name: Cache Cargo dependencies - uses: actions/cache@v4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - restore-keys: | - ${{ runner.os }}-cargo- - - - name: Build (Linux/macOS) - if: runner.os != 'Windows' - run: cargo build --release - - - name: Build (Windows) - if: runner.os == 'Windows' - shell: msys2 {0} - run: | - # ensure cargo is in PATH - export PATH=/c/Users/runneradmin/.cargo/bin:$PATH - # ensure mingw64 bin is in PATH - export PATH=/mingw64/bin:/usr/bin:$PATH - cargo build --release - - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: build-${{ matrix.os }} - path: target/release/build_msp* diff --git a/.gitmodules b/.gitmodules index add9448..c81ef58 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "switch-tools"] path = switch-tools - url = https://github.com/switchbrew/switch-tools + url = https://github.com/arabianq/switch-tools diff --git a/Cargo.lock b/Cargo.lock deleted file mode 100644 index 6fdd0a4..0000000 --- a/Cargo.lock +++ /dev/null @@ -1,95 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "anstyle" -version = "1.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" - -[[package]] -name = "build_msp" -version = "0.1.7" -dependencies = [ - "clap", -] - -[[package]] -name = "clap" -version = "4.5.51" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.5.51" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a" -dependencies = [ - "anstyle", - "clap_lex", -] - -[[package]] -name = "clap_derive" -version = "4.5.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "clap_lex" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "proc-macro2" -version = "1.0.103" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "syn" -version = "2.0.110" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "unicode-ident" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" diff --git a/Cargo.toml b/Cargo.toml deleted file mode 100644 index 6f33682..0000000 --- a/Cargo.toml +++ /dev/null @@ -1,22 +0,0 @@ -[package] -name = "build_msp" -version = "0.1.7" -edition = "2024" -authors = ["arabian"] -description = "A tool that helps to build .msp file mod" -readme = "README.md" -license = "MIT" -homepage = "https://github.com/arabianq/build_msp" -repository = "https://github.com/arabianq/build_msp" -keywords = ["switch", "nintendo", "mod", "mods", "msp"] -build = "build.rs" - -[dependencies] -"clap" = {version = "4.5.51", default-features = false, features = ["derive", "std", "help"]} - -[profile.release] -strip = true -lto = true -codegen-units = 1 -opt-level = "z" -panic = "abort" \ No newline at end of file diff --git a/build.rs b/build.rs deleted file mode 100644 index bfad59a..0000000 --- a/build.rs +++ /dev/null @@ -1,54 +0,0 @@ -use std::path::Path; -use std::process::Command; - -fn main() { - let switch_tools_dir = Path::new("switch-tools"); - - let aclocal_status = Command::new("aclocal") - .current_dir(switch_tools_dir) - .status() - .expect("Couldn't run aclocal"); - - let autoconf_status = Command::new("autoconf") - .current_dir(switch_tools_dir) - .status() - .expect("Couldn't run autoconf"); - - let automake_status = Command::new("automake") - .current_dir(switch_tools_dir) - .arg("--add-missing") - .arg("-c") - .status() - .expect("Couldn't run automake"); - - let conf_status = Command::new("./configure") - .current_dir(switch_tools_dir) - .status() - .expect("Couldn't run configure"); - - let make_status = Command::new("make") - .current_dir(switch_tools_dir) - .status() - .expect("Couldn't run make"); - - assert!( - aclocal_status.success(), - "Something went wrong while building switch-tools" - ); - assert!( - autoconf_status.success(), - "Something went wrong while building switch-tools" - ); - assert!( - automake_status.success(), - "Something went wrong while building switch-tools" - ); - assert!( - conf_status.success(), - "Something went wrong while building switch-tools" - ); - assert!( - make_status.success(), - "Something went wrong while building switch-tools" - ); -} diff --git a/src/main.rs b/src/main.rs deleted file mode 100644 index 6c37869..0000000 --- a/src/main.rs +++ /dev/null @@ -1,178 +0,0 @@ -use clap::{Error, Parser}; - -use std::fs::{ - File, ReadDir, copy, create_dir, read_dir, remove_dir_all, remove_file, set_permissions, -}; -use std::io::Write; -use std::path::{Path, PathBuf, absolute}; - -#[cfg(target_os = "windows")] -const BUILD_ROMFS_BIN: &[u8] = include_bytes!("../switch-tools/build_romfs.exe"); -#[cfg(target_os = "windows")] -const BUILD_PFS0_BIN: &[u8] = include_bytes!("../switch-tools/build_pfs0.exe"); - -#[cfg(not(target_os = "windows"))] -const BUILD_ROMFS_BIN: &[u8] = include_bytes!("../switch-tools/build_romfs"); -#[cfg(not(target_os = "windows"))] -const BUILD_PFS0_BIN: &[u8] = include_bytes!("../switch-tools/build_pfs0"); - -const FILES_TO_COPY: [&str; 28] = [ - "romfs.bin", - "exefs.nsp", - "rtld", - "main", - "main.npdm", - "compat0", - "compat1", - "compat2", - "compat3", - "compat4", - "compat5", - "compat6", - "compat7", - "compat8", - "compat9", - "subsdk0", - "subsdk1", - "subsdk2", - "subsdk3", - "subsdk4", - "subsdk5", - "subsdk6", - "subsdk7", - "subsdk8", - "subsdk9", - "sdk", - "config.ini", - "icon.jpg", -]; - -#[derive(Parser, Debug)] -#[command(version, about, long_about = None)] -struct Args { - #[arg(short = 'i', long = "input", default_value = ".")] - input: PathBuf, - - #[arg(short = 'o', long = "output", default_value = "mod.msp")] - output: PathBuf, - - #[arg(short = 'm', long = "manifest", default_value = "manifest")] - manifest: PathBuf, -} - -fn list_items(path: &Path) -> Result, Error> { - let mut items: Vec = Vec::new(); - let entries: ReadDir = read_dir(path)?; - - for entry in entries { - let path: PathBuf = entry?.path(); - if path.is_dir() { - items.extend(list_items(&path)?); - items.push(path); - } else if path.is_file() { - items.push(path); - } - } - Ok(items) -} - -fn main() -> Result<(), Error> { - let args = Args::parse(); - - let input_path: PathBuf = absolute(args.input)?; - let output_path: PathBuf = absolute(args.output)?; - let manifest_path: PathBuf = absolute(args.manifest)?; - - assert!(input_path.exists(), "Input path does not exist"); - assert!(!output_path.exists(), "Output path already exists"); - assert!(manifest_path.exists(), "Manifest path does not exist"); - - let current_dir: PathBuf = absolute(Path::new("."))?; - let temp_path: PathBuf = current_dir.join("temp"); - let mod_path: PathBuf = temp_path.join("mod"); - - if temp_path.exists() { - remove_dir_all(&temp_path)?; - } - create_dir(&temp_path)?; - create_dir(&mod_path)?; - - copy(&manifest_path, mod_path.join("manifest"))?; - - let build_romfs_path: PathBuf; - let build_pfs0_path: PathBuf; - #[cfg(target_os = "windows")] - { - build_romfs_path = temp_path.join("build_romfs.exe"); - build_pfs0_path = temp_path.join("build_pfs0.exe"); - } - #[cfg(not(target_os = "windows"))] - { - build_romfs_path = temp_path.join("build_romfs"); - build_pfs0_path = temp_path.join("build_pfs0"); - } - - #[cfg(target_os = "windows")] - { - let mut build_romfs_file: File = File::create(&build_romfs_path)?; - let mut build_pfs0_file: File = File::create(&build_pfs0_path)?; - build_romfs_file.write_all(BUILD_ROMFS_BIN)?; - build_pfs0_file.write_all(BUILD_PFS0_BIN)?; - } - #[cfg(not(target_os = "windows"))] - { - let mut build_romfs_file: File = File::create(&build_romfs_path)?; - build_romfs_file.write_all(BUILD_ROMFS_BIN)?; - set_permissions( - &build_romfs_path, - std::os::unix::fs::PermissionsExt::from_mode(0o755), - )?; - - let mut build_pfs0_file: File = File::create(&build_pfs0_path)?; - build_pfs0_file.write_all(BUILD_PFS0_BIN)?; - set_permissions( - &build_pfs0_path, - std::os::unix::fs::PermissionsExt::from_mode(0o755), - )?; - } - - let all_items: Vec = list_items(&input_path)?; - for item in all_items { - let name: &str = item.file_name().unwrap().to_str().unwrap(); - - if item.is_dir() && name.to_lowercase() == "romfs" { - println!("Found romfs directory. Building romfs.bin..."); - std::process::Command::new(&build_romfs_path) - .current_dir(&mod_path) - .arg(&item) - .arg(&mod_path.join("romfs.bin")) - .status()?; - continue; - } - - if FILES_TO_COPY.contains(&name) { - println!("Found {}, copying...", name); - copy(&item, &mod_path.join(name))?; - continue; - } - - if name.ends_with(".ips") { - println!("Found {}, copying...", name); - copy(&item, &mod_path.join(name))?; - continue; - } - } - - println!("Building {}...", output_path.display()); - std::process::Command::new(&build_pfs0_path) - .current_dir(&mod_path) - .arg(&mod_path) - .arg(&output_path) - .status()?; - - remove_file(&build_romfs_path)?; - remove_file(&build_pfs0_path)?; - remove_dir_all(&temp_path)?; - - Ok(()) -} diff --git a/switch-tools b/switch-tools index 2275606..4f5db7c 160000 --- a/switch-tools +++ b/switch-tools @@ -1 +1 @@ -Subproject commit 22756068dd0ed6ff9734c59cb4f99ebd3f62555b +Subproject commit 4f5db7c93219553127872546ec4491d7009824a5