Merge pull request #1559 from joshrotenberg/title_ignore_flags_init
Add --title option and --gitignore flag to mdbook init
This commit is contained in:
commit
56652e8fa6
|
@ -52,3 +52,19 @@ directory called `theme` in your source directory so that you can modify it.
|
||||||
|
|
||||||
The theme is selectively overwritten, this means that if you don't want to
|
The theme is selectively overwritten, this means that if you don't want to
|
||||||
overwrite a specific file, just delete it and the default file will be used.
|
overwrite a specific file, just delete it and the default file will be used.
|
||||||
|
|
||||||
|
#### --title
|
||||||
|
|
||||||
|
Specify a title for the book. If not supplied, an interactive prompt will ask for
|
||||||
|
a title.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mdbook init --title="my amazing book"
|
||||||
|
```
|
||||||
|
|
||||||
|
#### --ignore
|
||||||
|
|
||||||
|
Create a `.gitignore` file configured to ignore the `book` directory created when [building] a book.
|
||||||
|
If not supplied, an interactive prompt will ask whether it should be created.
|
||||||
|
|
||||||
|
[building]: build.md
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
use crate::get_book_dir;
|
use crate::get_book_dir;
|
||||||
use clap::{App, ArgMatches, SubCommand};
|
use clap::{App, Arg, ArgMatches, SubCommand};
|
||||||
use mdbook::config;
|
use mdbook::config;
|
||||||
use mdbook::errors::Result;
|
use mdbook::errors::Result;
|
||||||
use mdbook::MDBook;
|
use mdbook::MDBook;
|
||||||
|
@ -18,6 +18,21 @@ pub fn make_subcommand<'a, 'b>() -> App<'a, 'b> {
|
||||||
)
|
)
|
||||||
.arg_from_usage("--theme 'Copies the default theme into your source folder'")
|
.arg_from_usage("--theme 'Copies the default theme into your source folder'")
|
||||||
.arg_from_usage("--force 'Skips confirmation prompts'")
|
.arg_from_usage("--force 'Skips confirmation prompts'")
|
||||||
|
.arg(
|
||||||
|
Arg::with_name("title")
|
||||||
|
.long("title")
|
||||||
|
.takes_value(true)
|
||||||
|
.help("Sets the book title")
|
||||||
|
.required(false),
|
||||||
|
)
|
||||||
|
.arg(
|
||||||
|
Arg::with_name("ignore")
|
||||||
|
.long("ignore")
|
||||||
|
.takes_value(true)
|
||||||
|
.possible_values(&["none", "git"])
|
||||||
|
.help("Creates a VCS ignore file (i.e. .gitignore)")
|
||||||
|
.required(false),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Init command implementation
|
// Init command implementation
|
||||||
|
@ -25,7 +40,6 @@ pub fn execute(args: &ArgMatches) -> Result<()> {
|
||||||
let book_dir = get_book_dir(args);
|
let book_dir = get_book_dir(args);
|
||||||
let mut builder = MDBook::init(&book_dir);
|
let mut builder = MDBook::init(&book_dir);
|
||||||
let mut config = config::Config::default();
|
let mut config = config::Config::default();
|
||||||
|
|
||||||
// If flag `--theme` is present, copy theme to src
|
// If flag `--theme` is present, copy theme to src
|
||||||
if args.is_present("theme") {
|
if args.is_present("theme") {
|
||||||
let theme_dir = book_dir.join("theme");
|
let theme_dir = book_dir.join("theme");
|
||||||
|
@ -45,13 +59,23 @@ pub fn execute(args: &ArgMatches) -> Result<()> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
println!("\nDo you want a .gitignore to be created? (y/n)");
|
if let Some(ignore) = args.value_of("ignore") {
|
||||||
|
match ignore {
|
||||||
if confirm() {
|
"git" => builder.create_gitignore(true),
|
||||||
builder.create_gitignore(true);
|
_ => builder.create_gitignore(false),
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
println!("\nDo you want a .gitignore to be created? (y/n)");
|
||||||
|
if confirm() {
|
||||||
|
builder.create_gitignore(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
config.book.title = request_book_title();
|
config.book.title = if args.is_present("title") {
|
||||||
|
args.value_of("title").map(String::from)
|
||||||
|
} else {
|
||||||
|
request_book_title()
|
||||||
|
};
|
||||||
|
|
||||||
if let Some(author) = get_author_name() {
|
if let Some(author) = get_author_name() {
|
||||||
debug!("Obtained user name from gitconfig: {:?}", author);
|
debug!("Obtained user name from gitconfig: {:?}", author);
|
||||||
|
|
Loading…
Reference in New Issue