bumb dependencies + docker ci

This commit is contained in:
Robin Appelman 2021-07-31 16:41:01 +02:00
commit 34cdba6d82
7 changed files with 178 additions and 270 deletions

View file

@ -73,6 +73,7 @@ pub struct ListParams {
}
impl ListParams {
#[allow(dead_code)]
pub fn with_backend(self, backend: impl ToString) -> Self {
ListParams {
backend: Some(backend.to_string()),
@ -86,15 +87,15 @@ impl ListParams {
}
pub fn list_demos(params: ListParams, page: u32) -> Result<Vec<Demo>, Error> {
let mut req = ureq::get("https://api.demos.tf/demos");
req.query("page", &format!("{}", page))
let mut req = ureq::get("https://api.demos.tf/demos")
.query("page", &format!("{}", page))
.query("order", &format!("{}", params.order));
if let Some(backend) = params.backend.as_ref() {
req.query("backend", backend);
req = req.query("backend", backend);
}
let resp = req.call();
let resp = req.call()?;
Ok(resp.into_json_deserialize()?)
Ok(resp.into_json()?)
}

View file

@ -12,7 +12,7 @@ impl Backup {
}
fn backup_demo(&self, name: &str, url: &str, hash: [u8; 16]) -> Result<(), Error> {
let resp = ureq::get(url).call();
let resp = ureq::get(url).call()?;
let digest = self.store.store(name, &mut resp.into_reader())?;
@ -31,7 +31,7 @@ impl Backup {
let demos = list_demos(ListParams::default().with_order(ListOrder::Ascending), page)?;
for demo in demos.iter() {
if demo.url != "" {
if !demo.url.is_empty() {
let name = demo.url.rsplit('/').next().unwrap();
println!("{} {}", demo.id, name);
if !self.store.exists(name) {

View file

@ -15,10 +15,18 @@ mod api;
pub enum Error {
#[error("Request failed: {0}")]
Request(#[from] std::io::Error),
#[error("Request failed: {0}")]
UReq(Box<ureq::Error>),
#[error("MD5 digest mismatch for downloaded demo, expected {expected:?}, received {got:?}")]
DigestMismatch { expected: [u8; 16], got: [u8; 16] },
}
impl From<ureq::Error> for Error {
fn from(e: ureq::Error) -> Self {
Error::UReq(Box::new(e))
}
}
fn main() -> Result<(), MainError> {
let mut args: HashMap<_, _> = dotenv::vars().collect();
let store = Store::new(args.get("STORAGE_ROOT").expect("no STORAGE_ROOT set"));