feat(cli): add `--rescan_mode` CLI option, fix storybook cmd
parent
b050eaf893
commit
28861370a7
|
@ -26,7 +26,7 @@ use upend_base::hash::{sha256hash, UpMultihash};
|
|||
use upend_db::jobs::JobContainer;
|
||||
use upend_db::stores::fs::FsStore;
|
||||
use upend_db::stores::UpStore;
|
||||
use upend_db::UpEndDatabase;
|
||||
use upend_db::{BlobMode, UpEndDatabase};
|
||||
|
||||
use crate::util::exec::block_background;
|
||||
|
||||
|
@ -152,6 +152,10 @@ struct ServeArgs {
|
|||
#[arg(long)]
|
||||
no_initial_update: bool,
|
||||
|
||||
/// Which mode to use for rescanning the vault.
|
||||
#[arg(long)]
|
||||
rescan_mode: Option<BlobMode>,
|
||||
|
||||
/// Clean up temporary files (e.g. previews) on start.
|
||||
#[arg(long)]
|
||||
clean: bool,
|
||||
|
@ -444,19 +448,25 @@ async fn main() -> Result<()> {
|
|||
};
|
||||
|
||||
if !args.no_initial_update {
|
||||
if !open_result.new {
|
||||
if !open_result.new || args.rescan_mode.is_some() {
|
||||
info!("Running update...");
|
||||
block_background::<_, _, anyhow::Error>(move || {
|
||||
let connection = upend.connection()?;
|
||||
let connection: upend_db::UpEndConnection = upend.connection()?;
|
||||
|
||||
let tree_mode = args.rescan_mode.unwrap_or_else(|| {
|
||||
connection
|
||||
.get_vault_options()
|
||||
.unwrap()
|
||||
.blob_mode
|
||||
.unwrap_or_default()
|
||||
});
|
||||
|
||||
let _ = state.store.update(
|
||||
&upend,
|
||||
job_container.clone(),
|
||||
upend_db::stores::UpdateOptions {
|
||||
initial: false,
|
||||
tree_mode: connection
|
||||
.get_vault_options()?
|
||||
.blob_mode
|
||||
.unwrap_or_default(),
|
||||
tree_mode,
|
||||
},
|
||||
);
|
||||
let _ = extractors::extract_all(upend, state.store, job_container);
|
||||
|
|
|
@ -619,3 +619,18 @@ pub enum BlobMode {
|
|||
/// Only store files, don't place them anywhere
|
||||
StoreOnly,
|
||||
}
|
||||
|
||||
impl std::str::FromStr for BlobMode {
|
||||
type Err = anyhow::Error;
|
||||
|
||||
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||
match s {
|
||||
"flat" => Ok(BlobMode::Flat),
|
||||
"mirror" => Ok(BlobMode::Mirror),
|
||||
"incoming" => Ok(BlobMode::Incoming(None)),
|
||||
s if s.starts_with("incoming:") => Ok(BlobMode::Incoming(Some(s[9..].to_string()))),
|
||||
"store_only" => Ok(BlobMode::StoreOnly),
|
||||
_ => Err(anyhow!("Unknown blob mode: {}", s)),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
"clean": "rm -frv dist public/vendor",
|
||||
"storybook": "npm-run-all -p -r storybook:serve storybook:upend",
|
||||
"storybook:serve": "storybook dev -p 6006",
|
||||
"storybook:upend": "cargo run --release -- serve ../example_vault --bind 127.0.0.1:8099 --no-browser --reinitialize",
|
||||
"storybook:upend": "cargo run --release -- serve ../example_vault --bind 127.0.0.1:8099 --no-browser --reinitialize --rescan-mode mirror",
|
||||
"build-storybook": "storybook build"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
@ -78,4 +78,4 @@
|
|||
"three": "^0.147.0",
|
||||
"wavesurfer.js": "^6.6.4"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue