Remove unused metroidbuildinfo command
This commit is contained in:
parent
4611a4b501
commit
64d0491256
|
@ -1,48 +0,0 @@
|
|||
use std::path::PathBuf;
|
||||
|
||||
use anyhow::{bail, ensure, Context, Result};
|
||||
use argp::FromArgs;
|
||||
use memchr::memmem;
|
||||
use memmap2::MmapOptions;
|
||||
|
||||
#[derive(FromArgs, PartialEq, Eq, Debug)]
|
||||
/// Sets the MetroidBuildInfo tag value in a given binary.
|
||||
#[argp(subcommand, name = "metroidbuildinfo")]
|
||||
pub struct Args {
|
||||
#[argp(positional)]
|
||||
/// path to source binary
|
||||
binary: PathBuf,
|
||||
#[argp(positional)]
|
||||
/// path to build info string
|
||||
build_info: PathBuf,
|
||||
}
|
||||
|
||||
const BUILD_STRING_MAX: usize = 35;
|
||||
const BUILD_STRING_TAG: &str = "!#$MetroidBuildInfo!#$";
|
||||
|
||||
pub fn run(args: Args) -> Result<()> {
|
||||
let build_string = std::fs::read_to_string(&args.build_info).with_context(|| {
|
||||
format!("Failed to read build info string from '{}'", args.build_info.display())
|
||||
})?;
|
||||
let build_string_trim = build_string.trim_end();
|
||||
let build_string_bytes = build_string_trim.as_bytes();
|
||||
ensure!(
|
||||
build_string_bytes.len() <= BUILD_STRING_MAX,
|
||||
"Build string '{build_string_trim}' is greater than maximum size of {BUILD_STRING_MAX}"
|
||||
);
|
||||
|
||||
let binary_file =
|
||||
std::fs::File::options().read(true).write(true).open(&args.binary).with_context(|| {
|
||||
format!("Failed to open binary for writing: '{}'", args.binary.display())
|
||||
})?;
|
||||
let mut map = unsafe { MmapOptions::new().map_mut(&binary_file) }
|
||||
.with_context(|| format!("Failed to mmap binary: '{}'", args.binary.display()))?;
|
||||
let start = match memmem::find(&map, BUILD_STRING_TAG.as_bytes()) {
|
||||
Some(idx) => idx + BUILD_STRING_TAG.as_bytes().len(),
|
||||
None => bail!("Failed to find build string tag in binary"),
|
||||
};
|
||||
let end = start + build_string_bytes.len();
|
||||
map[start..end].copy_from_slice(build_string_bytes);
|
||||
map[end] = 0;
|
||||
Ok(())
|
||||
}
|
|
@ -7,7 +7,6 @@ pub mod dwarf;
|
|||
pub mod elf;
|
||||
pub mod elf2dol;
|
||||
pub mod map;
|
||||
pub mod metroidbuildinfo;
|
||||
pub mod nlzss;
|
||||
pub mod rarc;
|
||||
pub mod rel;
|
||||
|
|
|
@ -96,7 +96,6 @@ enum SubCommand {
|
|||
Elf(cmd::elf::Args),
|
||||
Elf2Dol(cmd::elf2dol::Args),
|
||||
Map(cmd::map::Args),
|
||||
MetroidBuildInfo(cmd::metroidbuildinfo::Args),
|
||||
Nlzss(cmd::nlzss::Args),
|
||||
Rarc(cmd::rarc::Args),
|
||||
Rel(cmd::rel::Args),
|
||||
|
@ -172,7 +171,6 @@ fn main() {
|
|||
SubCommand::Elf(c_args) => cmd::elf::run(c_args),
|
||||
SubCommand::Elf2Dol(c_args) => cmd::elf2dol::run(c_args),
|
||||
SubCommand::Map(c_args) => cmd::map::run(c_args),
|
||||
SubCommand::MetroidBuildInfo(c_args) => cmd::metroidbuildinfo::run(c_args),
|
||||
SubCommand::Nlzss(c_args) => cmd::nlzss::run(c_args),
|
||||
SubCommand::Rarc(c_args) => cmd::rarc::run(c_args),
|
||||
SubCommand::Rel(c_args) => cmd::rel::run(c_args),
|
||||
|
|
Loading…
Reference in New Issue