From 24071a6229f96bb14231b99cd3aba5cd7a950b18 Mon Sep 17 00:00:00 2001 From: Trinity Pointard Date: Sun, 2 Dec 2018 20:01:48 +0100 Subject: [PATCH] Make plm search use cwd if no directory is given and update doc --- docs/CLI.md | 48 +++++++++++++++++++++++++++++++++++++++++ docs/INSTALL.md | 7 ++++++ plume-cli/src/search.rs | 12 +++++------ 3 files changed, 61 insertions(+), 6 deletions(-) diff --git a/docs/CLI.md b/docs/CLI.md index 1bc495e6..a5b908c3 100644 --- a/docs/CLI.md +++ b/docs/CLI.md @@ -49,3 +49,51 @@ plm users new --admin -n 'kate' -N 'Kate' --bio "I'm Kate." --email 'kate@plu.me - `--email`, `-e`: the email adress of the user. - `--password`, `-p`: the password of the user. You probably want to use this option in shell scipts only, since if you don't specify it, the prompt won't show your password. - `--admin`, `-a`: makes the user an admin of the instance. Optional, off by default. + +## `plm search` + +Manage full text search index. + +### `plm search init` + +Initialize the search index. + +**Example:** + +```bash +plm search init -p Plume' +``` + +**Arguments:** + +- `--path`, `-n`: path to plume working directory. +- `--force`, `-f`: override any already existing search index. + +### `plm search refill` + +Refill the search index. + +**Example:** + +```bash +plm search refill -p Plume' +``` + +**Arguments:** + +- `--path`, `-n`: path to plume working directory. + +### `plm search unlock` + +Remove lock on the search index, after abnormal termination such as power loss. +Only do this if you know no processus is currently using the index. + +**Example:** + +```bash +plm search unlock -p Plume' +``` + +**Arguments:** + +- `--path`, `-n`: path to plume working directory. diff --git a/docs/INSTALL.md b/docs/INSTALL.md index 7cf19f41..cf2f2af2 100644 --- a/docs/INSTALL.md +++ b/docs/INSTALL.md @@ -193,6 +193,12 @@ plm instance new plm users new --admin ``` +You will also need to initialise search index + +``` +plm search init -p path/to/plume/workingdir +``` + For more information about these commands, and the arguments you can give them, check out [their documentaion](CLI.md). Finally, you can start Plume with: @@ -224,6 +230,7 @@ docker-compose run --rm plume diesel database setup # Setup your instance docker-compose run --rm plume plm instance new docker-compose run --rm plume plm users new --admin +docker-compose run --rm plume plm search init # Launch your instance for good docker-compose up -d diff --git a/plume-cli/src/search.rs b/plume-cli/src/search.rs index 9a6e7f20..67cbd58d 100644 --- a/plume-cli/src/search.rs +++ b/plume-cli/src/search.rs @@ -19,7 +19,7 @@ pub fn command<'a, 'b>() -> App<'a, 'b> { .short("p") .long("path") .takes_value(true) - .required(true) + .required(false) .help("Path to Plume's working directory")) .arg(Arg::with_name("force") .short("f") @@ -31,7 +31,7 @@ pub fn command<'a, 'b>() -> App<'a, 'b> { .short("p") .long("path") .takes_value(true) - .required(true) + .required(false) .help("Path to Plume's working directory") ).about("Regenerate Plume's search index")) .subcommand(SubCommand::with_name("unlock") @@ -39,7 +39,7 @@ pub fn command<'a, 'b>() -> App<'a, 'b> { .short("p") .long("path") .takes_value(true) - .required(true) + .required(false) .help("Path to Plume's working directory") ).about("Release lock on search directory")) } @@ -55,7 +55,7 @@ pub fn run<'a>(args: &ArgMatches<'a>, conn: &Connection) { } fn init<'a>(args: &ArgMatches<'a>, conn: &Connection) { - let path = args.value_of("path").unwrap(); + let path = args.value_of("path").unwrap_or("."); let force = args.is_present("force"); let path = Path::new(path).join("search_index"); @@ -82,7 +82,7 @@ fn init<'a>(args: &ArgMatches<'a>, conn: &Connection) { } fn refill<'a>(args: &ArgMatches<'a>, conn: &Connection, searcher: Option) { - let path = args.value_of("path").unwrap(); + let path = args.value_of("path").unwrap_or("."); let path = Path::new(path).join("search_index"); let searcher = searcher.unwrap_or_else(|| Searcher::open(&path).unwrap()); @@ -102,7 +102,7 @@ fn refill<'a>(args: &ArgMatches<'a>, conn: &Connection, searcher: Option(args: &ArgMatches<'a>) { - let path = args.value_of("path").unwrap(); + let path = args.value_of("path").unwrap_or("."); let path = Path::new(path).join("search_index/.tantivy-indexer.lock"); remove_file(path).unwrap();