diff --git a/etag b/etag new file mode 100644 index 0000000..aef1b87 --- /dev/null +++ b/etag @@ -0,0 +1 @@ +"5d5860c2-180adc" \ No newline at end of file diff --git a/scripts/build.sh b/scripts/build.sh new file mode 100755 index 0000000..323c419 --- /dev/null +++ b/scripts/build.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +cargo build --release + +cp target/release/i . diff --git a/src/main.rs b/src/main.rs index c726082..eaf6756 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,9 +1,6 @@ extern crate flate2; extern crate tar; -use flate2::read::GzDecoder; -use tar::Archive; - use std::fs::File; use reqwest::Client; @@ -12,7 +9,14 @@ use reqwest::header::ETAG; fn main() -> Result<(), std::io::Error> { let client = Client::new(); - let mut resp = client.get("http://mirrors.advancedhosters.com/archlinux/core/os/x86_64/bash-5.0.009-1-x86_64.pkg.tar.xz") + let args: Vec<_> = std::env::args().collect(); + if args.len() < 2 { + println!("Please enter a package name..."); + } + + let split = args[1].as_str().split("::"); + let vec: Vec<&str> = split.collect(); + let mut resp = client.get(vec[0]) .send().expect("Failed to make request"); if resp.status().is_success() { @@ -20,16 +24,16 @@ fn main() -> Result<(), std::io::Error> { std::fs::write("etag", etag.as_bytes()).expect("Failed to write ETAG..."); } - let mut file = File::create("/imperfect/repo/arch/tarballs/bash.pkg.tar.xz").expect("file creation failed. Did you setup arch? Do you have permission?"); + let mut file = match File::create(format!("/imperfect/repo/{}/tarballs/bash.pkg.tar.xz", vec[1])) { + Ok(res) => res, + Err(_) => { + println!("Failed to create file...did you setup arch? Do you have permission to create files?"); + std::process::exit(1); + } + }; + resp.copy_to(&mut file).expect("failed to write file"); } - let path = "/imperfect/pkgs/tarballs/bash.pkg.tar.xz"; - - let tar_gz = File::open(path).expect("Failed to open tar file..."); - let tar = GzDecoder::new(tar_gz); - let mut archive = Archive::new(tar); - archive.unpack("/imperfect/pkgs/tarball").expect("Could not unpack tarball"); - Ok(()) }