aboutsummaryrefslogtreecommitdiff
path: root/tool/src/main.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-01-21 19:29:17 +0100
committermetamuffin <metamuffin@disroot.org>2024-01-21 19:29:17 +0100
commita8fe841aaefe904121d936e608572a1422191167 (patch)
tree0d4bb04670af5a6212938664ec70470841ac8399 /tool/src/main.rs
parent06d5c0d961c85abb3dd645b65b4447936fe7690f (diff)
downloadjellything-a8fe841aaefe904121d936e608572a1422191167.tar
jellything-a8fe841aaefe904121d936e608572a1422191167.tar.bz2
jellything-a8fe841aaefe904121d936e608572a1422191167.tar.zst
trakt import
Diffstat (limited to 'tool/src/main.rs')
-rw-r--r--tool/src/main.rs75
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
-// }
-// }
-// }