From b2a06332d1b78924f74af6ed6533894f198b2806 Mon Sep 17 00:00:00 2001 From: Skye Bleed Date: Tue, 3 Sep 2019 10:23:13 -0500 Subject: [PATCH] Made command use command line args --- etag | 1 + scripts/build.sh | 5 +++++ src/main.rs | 28 ++++++++++++++++------------ 3 files changed, 22 insertions(+), 12 deletions(-) create mode 100644 etag create mode 100755 scripts/build.sh 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(()) }