mirror of
https://github.com/exoticorn/upkr.git
synced 2026-01-20 19:46:42 +01:00
add old-prob-update to compare script, add reverse option
This commit is contained in:
@@ -2,7 +2,9 @@
|
|||||||
|
|
||||||
configs = [
|
configs = [
|
||||||
[:master, '-b'],
|
[:master, '-b'],
|
||||||
[:z80, '-b']
|
[:z80, '-b'],
|
||||||
|
[:z80, ['-b', '-r']],
|
||||||
|
['old-prob-update', '-b']
|
||||||
]
|
]
|
||||||
|
|
||||||
files = Dir[ARGV[0] + '/*'].select {|f| !(f =~ /\.txt$/) }
|
files = Dir[ARGV[0] + '/*'].select {|f| !(f =~ /\.txt$/) }
|
||||||
@@ -34,8 +36,8 @@ for config in configs
|
|||||||
config_results = []
|
config_results = []
|
||||||
results << config_results
|
results << config_results
|
||||||
for file in files
|
for file in files
|
||||||
if system('cargo', 'run', '--release', 'pack', '-l', '9', config[1], file, '/tmp/out.upk') &&
|
if system(*['cargo', 'run', '--release', 'pack', config[1], file, '/tmp/out.upk'].flatten) &&
|
||||||
system('cargo', 'run', '--release', 'unpack', config[1], '/tmp/out.upk', '/tmp/out.bin') &&
|
system(*['cargo', 'run', '--release', 'unpack', config[1], '/tmp/out.upk', '/tmp/out.bin'].flatten) &&
|
||||||
File.read(file) == File.read('/tmp/out.bin')
|
File.read(file) == File.read('/tmp/out.bin')
|
||||||
size = File.size('/tmp/out.upk')
|
size = File.size('/tmp/out.upk')
|
||||||
config_results << size
|
config_results << size
|
||||||
|
|||||||
12
src/main.rs
12
src/main.rs
@@ -10,12 +10,16 @@ fn main() -> Result<()> {
|
|||||||
Some("pack") => {
|
Some("pack") => {
|
||||||
let level = args.opt_value_from_str(["-l", "--level"])?.unwrap_or(2u8);
|
let level = args.opt_value_from_str(["-l", "--level"])?.unwrap_or(2u8);
|
||||||
let use_bitstream = args.contains(["-b", "--bitstream"]);
|
let use_bitstream = args.contains(["-b", "--bitstream"]);
|
||||||
|
let reverse = args.contains(["-r", "--reverse"]);
|
||||||
|
|
||||||
let infile = args.free_from_os_str::<PathBuf, bool>(|s| Ok(s.into()))?;
|
let infile = args.free_from_os_str::<PathBuf, bool>(|s| Ok(s.into()))?;
|
||||||
let outfile = args.free_from_os_str::<PathBuf, bool>(|s| Ok(s.into()))?;
|
let outfile = args.free_from_os_str::<PathBuf, bool>(|s| Ok(s.into()))?;
|
||||||
|
|
||||||
let mut data = vec![];
|
let mut data = vec![];
|
||||||
File::open(infile)?.read_to_end(&mut data)?;
|
File::open(infile)?.read_to_end(&mut data)?;
|
||||||
|
if reverse {
|
||||||
|
data.reverse();
|
||||||
|
}
|
||||||
|
|
||||||
let mut pb = pbr::ProgressBar::new(data.len() as u64);
|
let mut pb = pbr::ProgressBar::new(data.len() as u64);
|
||||||
pb.set_units(pbr::Units::Bytes);
|
pb.set_units(pbr::Units::Bytes);
|
||||||
@@ -39,14 +43,18 @@ fn main() -> Result<()> {
|
|||||||
}
|
}
|
||||||
Some("unpack") => {
|
Some("unpack") => {
|
||||||
let use_bitstream = args.contains(["-b", "--bitstream"]);
|
let use_bitstream = args.contains(["-b", "--bitstream"]);
|
||||||
|
let reverse = args.contains(["-r", "--reverse"]);
|
||||||
|
|
||||||
let infile = args.free_from_os_str::<PathBuf, bool>(|s| Ok(s.into()))?;
|
let infile = args.free_from_os_str::<PathBuf, bool>(|s| Ok(s.into()))?;
|
||||||
let outfile = args.free_from_os_str::<PathBuf, bool>(|s| Ok(s.into()))?;
|
let outfile = args.free_from_os_str::<PathBuf, bool>(|s| Ok(s.into()))?;
|
||||||
|
|
||||||
let mut data = vec![];
|
let mut data = vec![];
|
||||||
File::open(infile)?.read_to_end(&mut data)?;
|
File::open(infile)?.read_to_end(&mut data)?;
|
||||||
let packed_data = upkr::unpack(&data, use_bitstream);
|
let mut unpacked_data = upkr::unpack(&data, use_bitstream);
|
||||||
File::create(outfile)?.write_all(&packed_data)?;
|
if reverse {
|
||||||
|
unpacked_data.reverse();
|
||||||
|
}
|
||||||
|
File::create(outfile)?.write_all(&unpacked_data)?;
|
||||||
}
|
}
|
||||||
Some(other) => {
|
Some(other) => {
|
||||||
bail!("Unknown subcommand '{}'", other);
|
bail!("Unknown subcommand '{}'", other);
|
||||||
|
|||||||
Reference in New Issue
Block a user