aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--Cargo.lock33
-rw-r--r--Cargo.toml1
-rw-r--r--src/args.rs4
-rw-r--r--src/main.rs7
4 files changed, 37 insertions, 8 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 5e0872b..d0811a7 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -337,9 +337,9 @@ dependencies = [
[[package]]
name = "anyhow"
-version = "1.0.53"
+version = "1.0.54"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94a45b455c14666b85fc40a019e8ab9eb75e3a124e05494f5397122bc9eb06e0"
+checksum = "7a99269dff3bc004caa411f38845c20303f1e393ca2bd6581576fa3a7f59577d"
[[package]]
name = "askama_escape"
@@ -619,6 +619,16 @@ dependencies = [
]
[[package]]
+name = "clap_mangen"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0649fb4156bbd7306896025005596033879a2051f9a3aa7416ab915df1f8fdac"
+dependencies = [
+ "clap 3.1.0",
+ "roff",
+]
+
+[[package]]
name = "codemap"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1270,9 +1280,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
-version = "0.2.118"
+version = "0.2.119"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06e509672465a0504304aa87f9f176f2b2b716ed8fb105ebe5c02dc6dce96a94"
+checksum = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4"
[[package]]
name = "libflate"
@@ -1429,6 +1439,7 @@ dependencies = [
"chrono-humanize",
"clap 3.1.0",
"clap_complete",
+ "clap_mangen",
"futures",
"get_if_addrs",
"grass",
@@ -2077,6 +2088,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422"
[[package]]
+name = "roff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b833d8d034ea094b1ea68aa6d5c740e0d04bad9d16568d08ba6f76823a114316"
+
+[[package]]
name = "rstest"
version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2100,9 +2117,9 @@ dependencies = [
[[package]]
name = "rustls"
-version = "0.20.3"
+version = "0.20.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b323592e3164322f5b193dc4302e4e36cd8d37158a712d664efae1a5c2791700"
+checksum = "4fbfeb8d0ddb84706bc597a5574ab8912817c52a397f819e5b614e2265206921"
dependencies = [
"log",
"ring",
@@ -2586,9 +2603,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6"
[[package]]
name = "tracing"
-version = "0.1.30"
+version = "0.1.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d8d93354fe2a8e50d5953f5ae2e47a3fc2ef03292e7ea46e3cc38f549525fb9"
+checksum = "f6c650a8ef0cd2dd93736f033d21cbd1224c5a967aa0c258d00fcf7dafef9b9f"
dependencies = [
"cfg-if",
"pin-project-lite",
diff --git a/Cargo.toml b/Cargo.toml
index 7f45b56..930f551 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -31,6 +31,7 @@ nanoid = "0.4"
alphanumeric-sort = "1"
clap = { version = "3.0.7", features = ["derive", "cargo", "wrap_help"] }
clap_complete = "3.0.3"
+clap_mangen = "0.1"
chrono = "0.4"
chrono-humanize = "0.2"
serde = { version = "1", features = ["derive"] }
diff --git a/src/args.rs b/src/args.rs
index 77925a2..841db3a 100644
--- a/src/args.rs
+++ b/src/args.rs
@@ -156,6 +156,10 @@ pub struct CliArgs {
#[clap(long = "print-completions", value_name = "shell", arg_enum)]
pub print_completions: Option<Shell>,
+ /// Generate man page
+ #[clap(long = "print-manpage")]
+ pub print_manpage: bool,
+
/// TLS certificate to use
#[cfg(feature = "tls")]
#[clap(long = "tls-cert", requires = "tls-key", value_hint = ValueHint::FilePath)]
diff --git a/src/main.rs b/src/main.rs
index 63a620d..de10d7d 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -40,6 +40,13 @@ fn main() -> Result<()> {
return Ok(());
}
+ if args.print_manpage {
+ let clap_app = args::CliArgs::command();
+ let man = clap_mangen::Man::new(clap_app);
+ man.render(&mut io::stdout())?;
+ return Ok(());
+ }
+
let miniserve_config = MiniserveConfig::try_from_args(args)?;
run(miniserve_config).map_err(|e| {