master
Avril 4 years ago
parent 2df51330d3
commit 89d6dd010f
Signed by: flanchan
GPG Key ID: 284488987C31F630

@ -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

@ -1 +1 @@
generator-native/target/release/generator-native
generator-v0.1.0

@ -2,9 +2,10 @@
name = "generator-native"
version = "0.1.0"
authors = ["Avril <flanchan@cumallover.me>"]
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" }
heaparray = { git = "https://github.com/notflan/heaparray" }

@ -3,6 +3,7 @@ use crate::{
};
pub enum OperationMode {
Version(bool),
Normal(Options, Vec<String>),
Help,
}
@ -22,6 +23,12 @@ pub fn parse() -> Result<OperationMode, &'static str>
"-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;
},

@ -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 <exec string>] [-o <output file>] [-] <files...>", 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 <exec>\tScript to run after extraction.");
println!(" -o <file>\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<Path> + ?Sized
where P: AsRef<Path> + ?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<dyn Error>>{
/*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<dyn Error>>
{
match arg::parse()? {
arg::OperationMode::Normal(options, files) => {
let output = options.find(|opt| match opt {
@ -190,6 +190,9 @@ fn main() -> Result<(), Box<dyn Error>>{
arg::OperationMode::Help => {
usage();
},
arg::OperationMode::Version(verbose) => {
version(verbose);
},
};
Ok(())

Binary file not shown.

Binary file not shown.
Loading…
Cancel
Save