Run 'cargo fmt' to format code (#489)
This commit is contained in:
committed by
Baptiste Gelez
parent
732f514da7
commit
b945d1f602
+62
-46
@@ -1,47 +1,56 @@
|
||||
use clap::{Arg, ArgMatches, App, SubCommand};
|
||||
use clap::{App, Arg, ArgMatches, SubCommand};
|
||||
use diesel::{ExpressionMethods, QueryDsl, RunQueryDsl};
|
||||
|
||||
use plume_models::{posts::Post, schema::posts, search::Searcher, Connection};
|
||||
use std::fs::{read_dir, remove_file};
|
||||
use std::io::ErrorKind;
|
||||
use std::path::Path;
|
||||
use plume_models::{
|
||||
Connection,
|
||||
posts::Post,
|
||||
schema::posts,
|
||||
search::Searcher,
|
||||
};
|
||||
|
||||
pub fn command<'a, 'b>() -> App<'a, 'b> {
|
||||
SubCommand::with_name("search")
|
||||
.about("Manage search index")
|
||||
.subcommand(SubCommand::with_name("init")
|
||||
.arg(Arg::with_name("path")
|
||||
.short("p")
|
||||
.long("path")
|
||||
.takes_value(true)
|
||||
.required(false)
|
||||
.help("Path to Plume's working directory"))
|
||||
.arg(Arg::with_name("force")
|
||||
.short("f")
|
||||
.long("force")
|
||||
.help("Ignore already using directory")
|
||||
).about("Initialize Plume's internal search engine"))
|
||||
.subcommand(SubCommand::with_name("refill")
|
||||
.arg(Arg::with_name("path")
|
||||
.short("p")
|
||||
.long("path")
|
||||
.takes_value(true)
|
||||
.required(false)
|
||||
.help("Path to Plume's working directory")
|
||||
).about("Regenerate Plume's search index"))
|
||||
.subcommand(SubCommand::with_name("unlock")
|
||||
.arg(Arg::with_name("path")
|
||||
.short("p")
|
||||
.long("path")
|
||||
.takes_value(true)
|
||||
.required(false)
|
||||
.help("Path to Plume's working directory")
|
||||
).about("Release lock on search directory"))
|
||||
.subcommand(
|
||||
SubCommand::with_name("init")
|
||||
.arg(
|
||||
Arg::with_name("path")
|
||||
.short("p")
|
||||
.long("path")
|
||||
.takes_value(true)
|
||||
.required(false)
|
||||
.help("Path to Plume's working directory"),
|
||||
)
|
||||
.arg(
|
||||
Arg::with_name("force")
|
||||
.short("f")
|
||||
.long("force")
|
||||
.help("Ignore already using directory"),
|
||||
)
|
||||
.about("Initialize Plume's internal search engine"),
|
||||
)
|
||||
.subcommand(
|
||||
SubCommand::with_name("refill")
|
||||
.arg(
|
||||
Arg::with_name("path")
|
||||
.short("p")
|
||||
.long("path")
|
||||
.takes_value(true)
|
||||
.required(false)
|
||||
.help("Path to Plume's working directory"),
|
||||
)
|
||||
.about("Regenerate Plume's search index"),
|
||||
)
|
||||
.subcommand(
|
||||
SubCommand::with_name("unlock")
|
||||
.arg(
|
||||
Arg::with_name("path")
|
||||
.short("p")
|
||||
.long("path")
|
||||
.takes_value(true)
|
||||
.required(false)
|
||||
.help("Path to Plume's working directory"),
|
||||
)
|
||||
.about("Release lock on search directory"),
|
||||
)
|
||||
}
|
||||
|
||||
pub fn run<'a>(args: &ArgMatches<'a>, conn: &Connection) {
|
||||
@@ -59,19 +68,25 @@ fn init<'a>(args: &ArgMatches<'a>, conn: &Connection) {
|
||||
let force = args.is_present("force");
|
||||
let path = Path::new(path).join("search_index");
|
||||
|
||||
let can_do = match read_dir(path.clone()) { // try to read the directory specified
|
||||
Ok(mut contents) => contents.next().is_none(),
|
||||
Err(e) => if e.kind() == ErrorKind::NotFound {
|
||||
true
|
||||
} else {
|
||||
panic!("Error while initialising search index : {}", e);
|
||||
let can_do = match read_dir(path.clone()) {
|
||||
// try to read the directory specified
|
||||
Ok(mut contents) => contents.next().is_none(),
|
||||
Err(e) => {
|
||||
if e.kind() == ErrorKind::NotFound {
|
||||
true
|
||||
} else {
|
||||
panic!("Error while initialising search index : {}", e);
|
||||
}
|
||||
}
|
||||
};
|
||||
if can_do || force {
|
||||
let searcher = Searcher::create(&path).unwrap();
|
||||
refill(args, conn, Some(searcher));
|
||||
} else {
|
||||
eprintln!("Can't create new index, {} exist and is not empty", path.to_str().unwrap());
|
||||
eprintln!(
|
||||
"Can't create new index, {} exist and is not empty",
|
||||
path.to_str().unwrap()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,15 +101,16 @@ fn refill<'a>(args: &ArgMatches<'a>, conn: &Connection, searcher: Option<Searche
|
||||
.expect("Post::get_recents: loading error");
|
||||
|
||||
let len = posts.len();
|
||||
for (i,post) in posts.iter().enumerate() {
|
||||
println!("Importing {}/{} : {}", i+1, len, post.title);
|
||||
searcher.update_document(conn, &post).expect("Couldn't import post");
|
||||
for (i, post) in posts.iter().enumerate() {
|
||||
println!("Importing {}/{} : {}", i + 1, len, post.title);
|
||||
searcher
|
||||
.update_document(conn, &post)
|
||||
.expect("Couldn't import post");
|
||||
}
|
||||
println!("Commiting result");
|
||||
searcher.commit();
|
||||
}
|
||||
|
||||
|
||||
fn unlock<'a>(args: &ArgMatches<'a>) {
|
||||
let path = args.value_of("path").unwrap_or(".");
|
||||
let path = Path::new(path).join("search_index/.tantivy-indexer.lock");
|
||||
|
||||
Reference in New Issue
Block a user