From df1255d479cc6e488bf19c6b7ad173abb9e625fd Mon Sep 17 00:00:00 2001 From: QuirinEcker Date: Sun, 5 Feb 2023 22:06:16 +0100 Subject: [PATCH] add install for reveal. docs in progrees --- src/app/commands/setup.rs | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/src/app/commands/setup.rs b/src/app/commands/setup.rs index d60359e..b5cf014 100644 --- a/src/app/commands/setup.rs +++ b/src/app/commands/setup.rs @@ -1,4 +1,4 @@ -use std::collections::HashMap; +use std::{collections::HashMap, env, fs::File, io::Write, fmt::format}; use super::traits::Command; @@ -14,3 +14,40 @@ impl Command for Setup { return Self {} } } + + +impl Setup { + + fn setup() { + let os = env::consts::OS; + + let reveal_bin_url = format!("https://github.com/asciidoctor/asciidoctor-reveal.js/releases/download/v5.0.0-rc.1/asciidoctor-revealjs-{os}"); + let reveal_bin = Self::donwload(&reveal_bin_url).expect("could not download asciidoctor binary"); + let mut reveal_file = File::create("/usr/local/bin/asciidoctor").expect("could not save asciidoctor binary"); + reveal_file.write_all(reveal_bin); + } + + fn donwload(url: &str) -> Result<&[u8], ()> { + let Ok(response) = reqwest::blocking::get(url) else { + return Err(()); + }; + + let Ok(data) = response.bytes() else { + return Err(()); + }; + + return Ok(&data) + } +} + +#[cfg(test)] +mod test { + use std::env; + + + #[test] + fn download() { + println!("{}", env::consts::OS); + assert!(false) + } +}