diff options
Diffstat (limited to 'tool/src/main.rs')
-rw-r--r-- | tool/src/main.rs | 75 |
1 files changed, 14 insertions, 61 deletions
diff --git a/tool/src/main.rs b/tool/src/main.rs index 58559dc..68513d1 100644 --- a/tool/src/main.rs +++ b/tool/src/main.rs @@ -3,14 +3,17 @@ which is licensed under the GNU Affero General Public License (version 3); see /COPYING. Copyright (C) 2023 metamuffin <metamuffin.org> */ + +pub mod add; pub mod migrate; +use add::add; use anyhow::anyhow; use clap::{Parser, Subcommand, ValueEnum}; use jellybase::{CONF, SECRETS}; use jellyclient::Instance; use jellycommon::user::CreateSessionParams; -use log::{error, info}; +use log::info; use migrate::migrate; use std::{fmt::Debug, path::PathBuf}; @@ -25,14 +28,13 @@ struct Args { #[derive(Subcommand)] enum Action { - /// Initialize a new jellything instance - Init { - /// Base path of the instance, must either be absolute or relative to the servers pwd - base_path: PathBuf, + Add { + #[arg(short, long)] + id: Option<String>, #[arg(short, long)] - brand: String, + media: Option<PathBuf>, #[arg(short, long)] - hostname: String, + library_path: Option<PathBuf>, }, Migrate { database: PathBuf, @@ -63,50 +65,11 @@ fn main() -> anyhow::Result<()> { let args = Args::parse(); match args.action { - Action::Init { .. } => { - // info!("creating new instance..."); - // std::fs::create_dir_all(path.join("library"))?; - // std::fs::create_dir_all(path.join("cache"))?; - // std::fs::create_dir_all(path.join("assets"))?; - // std::fs::create_dir_all(path.join("media"))?; - // File::create_new(path.join("assets/front.htm"))? - // .write_fmt(format_args!("<h1>My very own jellything instance</h1>"))?; - - // // TODO: dont fill that - // serde_yaml::to_writer( - // File::create_new(path.join("config.yaml"))?, - // &GlobalConfig { - // brand: brand.clone(), - // hostname, - // slogan: "Creative slogan here".to_string(), - // asset_path: path.join("assets"), - // cache_path: path.join("cache"), - // library_path: path.join("library"), - // database_path: path.join("database"), - // temp_path: "/tmp".into(), - - // login_expire: 10, - // ..Default::default() - // }, - // )?; - // serde_json::to_writer( - // File::create_new(path.join("library/directory.json"))?, - // &Node { - // public: NodePublic { - // kind: Some(NodeKind::Collection), - // title: Some("My Library".to_string()), - // ..Default::default() - // }, - // private: NodePrivate { - // ..Default::default() - // }, - // }, - // )?; - // info!("{brand:?} is ready!"); - // warn!("please add an admin password to login."); - error!("init is currently disabled"); - Ok(()) - } + a @ Action::Add { .. } => tokio::runtime::Builder::new_multi_thread() + .enable_all() + .build() + .unwrap() + .block_on(add(a)), a @ Action::Migrate { .. } => migrate(a), Action::Reimport { hostname, no_tls } => tokio::runtime::Builder::new_multi_thread() .enable_all() @@ -135,13 +98,3 @@ fn main() -> anyhow::Result<()> { }), } } - -// fn ok_or_warn<T, E: Debug>(r: Result<T, E>) -> Option<T> { -// match r { -// Ok(t) => Some(t), -// Err(e) => { -// warn!("{e:?}"); -// None -// } -// } -// } |