Make plm search use cwd if no directory is given and update doc

This commit is contained in:
Trinity Pointard 2018-12-02 20:01:48 +01:00
parent ed71d24fe9
commit 24071a6229
3 changed files with 61 additions and 6 deletions

View File

@ -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.

View File

@ -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

View File

@ -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<Searcher>) {
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<Searche
fn unlock<'a>(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();