Compare commits

..

3 commits

3 changed files with 21 additions and 17 deletions

View file

@ -5,7 +5,7 @@ use std::{
path::{Path, PathBuf},
};
use log::{debug, error, trace};
use log::{debug, trace};
use serde::{Deserialize, Serialize};
use super::{
@ -35,14 +35,14 @@ impl AppState {
.expect("could not determine cache directory")
.join("shrupl");
trace!("cachedir: {}", dir_name.display());
trace!("cachedir: {:?}", dir_name.display());
dir_name
}
fn cache_file(args: &Cli) -> PathBuf {
let file_name = Self::cache_dir().join(format!("{}.json", args.get_hash()));
trace!("cachefile: {}", file_name.display());
trace!("cachefile: {:?}", file_name.display());
file_name
}
@ -55,7 +55,7 @@ impl AppState {
let file_name = Self::cache_file(args);
Self::load(&file_name)
.inspect_err(|e| debug!("could not resume from {}: {e}", file_name.display()))
.inspect_err(|e| debug!("could not resume from {:?}: {e}", file_name.display()))
.map(|state| {
debug!("successfully loaded AppState");
@ -69,17 +69,16 @@ impl AppState {
.ok()
}
pub fn from_args(args: &Cli, http: &ureq::Agent) -> Option<Self> {
pub fn from_args(args: &Cli, http: &ureq::Agent) -> Result<Self, String> {
let file_name = Self::cache_file(args);
let alias = args.get_alias();
let share = Share::create(http, &alias, args.get_share_request())
.inspect_err(|e| error!("could not create Share: {e}"))
.ok()?;
.map_err(|e| format!("could not create share: {e}"))?;
let files: VecDeque<_> = args.files.clone().into_iter().map(FileState::C).collect();
Some(Self {
Ok(Self {
file_name,
alias,
share,

View file

@ -2,9 +2,12 @@ mod appstate;
mod cli;
mod sharry;
use std::sync::{
use std::{
process::exit,
sync::{
Arc,
atomic::{AtomicBool, Ordering},
},
};
use clap::Parser;
@ -38,11 +41,11 @@ fn main() {
state
})
.or_else(|| AppState::from_args(&args, &agent))
.unwrap_or_else(|| {
error!("could not create new state from cli arguments: {args:?}");
std::process::exit(1);
AppState::from_args(&args, &agent).unwrap_or_else(|e| {
error!("could not create new state: {e}");
exit(1);
})
});
info!("continuing with state: {state:?}");
@ -59,7 +62,7 @@ fn main() {
if !running.load(Ordering::SeqCst) {
info!("terminating ...");
std::process::exit(0);
exit(0);
}
}

View file

@ -41,7 +41,9 @@ impl Display for FileUploading {
write!(
f,
"Uploading ({:?}, {}, {})",
self.path, self.size, self.offset
self.path.display(),
self.size,
self.offset
)
}
}