diff --git a/Makefile b/Makefile index aa1331b..d9c46cd 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,21 @@ +VERSION:= v0.1.0 + +all: clean generator trust + +trust: + if [[ ! -f generator-$(VERSION) ]]; then \ + make -B generator || exit 1; \ + fi + ln -sf generator-$(VERSION) generator generator: cd generator-native && cargo build --release ln -sf generator-native/target/release/generator-native generator + cp -f `readlink generator` ./generator-$(VERSION) + gpg --sign ./generator-$(VERSION) + +clean: + rm -f generator-v* sfexec-output: g++ -Iinclude/ -w --std=c++17 main.cpp sha256_literal/sha256.cpp -o sfexec diff --git a/generator b/generator index 9deb1a7..8a5e72b 120000 --- a/generator +++ b/generator @@ -1 +1 @@ -generator-native/target/release/generator-native \ No newline at end of file +generator-v0.1.0 \ No newline at end of file diff --git a/generator-native/Cargo.toml b/generator-native/Cargo.toml index 6ebb2f9..92b669c 100644 --- a/generator-native/Cargo.toml +++ b/generator-native/Cargo.toml @@ -2,9 +2,10 @@ name = "generator-native" version = "0.1.0" authors = ["Avril "] +license = "GPL 3.0" edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -heaparray = { git = "https://github.com/notflan/heaparray" } \ No newline at end of file +heaparray = { git = "https://github.com/notflan/heaparray" } diff --git a/generator-native/src/arg.rs b/generator-native/src/arg.rs index 325da44..2ebcbb8 100644 --- a/generator-native/src/arg.rs +++ b/generator-native/src/arg.rs @@ -3,6 +3,7 @@ use crate::{ }; pub enum OperationMode { + Version(bool), Normal(Options, Vec), Help, } @@ -22,6 +23,12 @@ pub fn parse() -> Result "-h" if i == 1 => { return Ok(OperationMode::Help); }, + "-v" if i==1 => { + return Ok(OperationMode::Version(false)); + }, + "-V" if i==1 => { + return Ok(OperationMode::Version(true)); + }, "-s" if look => { opt |= Opt::Silent; }, diff --git a/generator-native/src/main.rs b/generator-native/src/main.rs index a796d50..fae3075 100644 --- a/generator-native/src/main.rs +++ b/generator-native/src/main.rs @@ -28,13 +28,28 @@ macro_rules! flush { } } +fn version(verbose: bool) +{ + if verbose { + println!("sfexec-generator-native verison: {}", env!("CARGO_PKG_VERSION")); + println!("author: {} (https://flanchan.moe/)", env!("CARGO_PKG_AUTHORS")); + println!("license: GPL 3.0\n"); + } else { + print!("{}", env!("CARGO_PKG_VERSION")); + } +} + fn usage() -> ! { let prog = &arg::program_name(); + version(true); println!("Usage: {} [-s] [-e ] [-o ] [-] ", prog); println!("Usage: {} -h", prog); + println!("Usage: {} -v|-V", prog); println!(); - println!(" -\t\tStop reading options."); println!(" -h\t\tPrint this message."); + println!(" -v\t\tPrint version."); + println!(" -V\t\tPrint program info."); + println!(" -\t\tStop reading options."); println!(" -s\t\tSilent mode."); println!(" -e \tScript to run after extraction."); println!(" -o \tOutput filename."); @@ -62,7 +77,7 @@ where From: Read, } fn attempt_get_name<'a, P>(path: &'a P) -> Result<&'a str, &'static str> - where P: AsRef + ?Sized +where P: AsRef + ?Sized { let path = path.as_ref(); if let Some(path) = path.file_name() { @@ -77,23 +92,8 @@ fn attempt_get_name<'a, P>(path: &'a P) -> Result<&'a str, &'static str> } } -fn main() -> Result<(), Box>{ - - /*let file = OpenOptions::new() - .read(true) - .open("test.txt")?; - - - println!("{{"); - for buf in file.into_iter(4) - .map(|byte| format!("0x{:02x},", byte)) - .group_at(4) - .map(|strs| format!("\t{}", strs.join(" "))) - { - println!("{}", buf); - } - println!("}}");*/ - +fn main() -> Result<(), Box> +{ match arg::parse()? { arg::OperationMode::Normal(options, files) => { let output = options.find(|opt| match opt { @@ -190,6 +190,9 @@ fn main() -> Result<(), Box>{ arg::OperationMode::Help => { usage(); }, + arg::OperationMode::Version(verbose) => { + version(verbose); + }, }; Ok(()) diff --git a/generator-v0.1.0 b/generator-v0.1.0 new file mode 100755 index 0000000..fff904b Binary files /dev/null and b/generator-v0.1.0 differ diff --git a/generator-v0.1.0.gpg b/generator-v0.1.0.gpg new file mode 100644 index 0000000..538f790 Binary files /dev/null and b/generator-v0.1.0.gpg differ