[WIP] A (somewhat barebones) atproto app for creating custom sites without hosting!

upload: make main much cleaner

vielle.dev 4ac8eaad 97aab937

verified
Changed files
+18 -13
upload
+14 -1
upload/src/config.rs
··· 1 - use std::fs; 2 3 pub struct Config { 4 pub user: String, 5 pub pword: String, 6 pub dir: String, 7 } 8 9 pub enum ConfigErr { 10 TooManyDirectories, 11 NotEnoughArgs(String), 12 UnknownArg(String), 13 NotADirectory, 14 } 15 16 pub fn extract() -> Result<Config, ConfigErr> {
··· 1 + use std::{fmt, fs}; 2 3 + #[derive(Debug)] 4 pub struct Config { 5 pub user: String, 6 pub pword: String, 7 pub dir: String, 8 } 9 10 + #[derive(Debug)] 11 pub enum ConfigErr { 12 TooManyDirectories, 13 NotEnoughArgs(String), 14 UnknownArg(String), 15 NotADirectory, 16 + } 17 + 18 + impl fmt::Display for ConfigErr { 19 + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 20 + match self { 21 + ConfigErr::TooManyDirectories => write!(f, "Too many directories"), 22 + ConfigErr::NotEnoughArgs(args) => write!(f, "Missing {}", args), 23 + ConfigErr::UnknownArg(arg) => write!(f, "Unknown arg {}", arg), 24 + ConfigErr::NotADirectory => write!(f, "Not a directory"), 25 + } 26 + } 27 } 28 29 pub fn extract() -> Result<Config, ConfigErr> {
+4 -12
upload/src/main.rs
··· 2 3 fn main() -> Result<(), ()> { 4 // get config items 5 - let config = match config::extract() { 6 - Ok(v) => v, 7 - Err(err) => { 8 - match err { 9 - config::ConfigErr::TooManyDirectories => println!("Too many directories"), 10 - config::ConfigErr::NotEnoughArgs(args) => println!("Missing {}", args), 11 - config::ConfigErr::UnknownArg(arg) => println!("Unknown arg {}", arg), 12 - config::ConfigErr::NotADirectory => println!("Not a directory"), 13 - } 14 - return Err(()); 15 - } 16 - }; 17 18 println!( 19 "user: {}
··· 2 3 fn main() -> Result<(), ()> { 4 // get config items 5 + let config = config::extract().or_else(|x| { 6 + println!("{}", x); 7 + Err(()) 8 + })?; 9 10 println!( 11 "user: {}