implement manpage generation
This commit is contained in:
parent
9a74ac157f
commit
d56d8d134e
4 changed files with 41 additions and 10 deletions
22
Cargo.lock
generated
22
Cargo.lock
generated
|
|
@ -348,6 +348,16 @@ version = "0.7.5"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675"
|
||||
|
||||
[[package]]
|
||||
name = "clap_mangen"
|
||||
version = "0.2.31"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "439ea63a92086df93893164221ad4f24142086d535b3a0957b9b9bea2dc86301"
|
||||
dependencies = [
|
||||
"clap",
|
||||
"roff",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "color_quant"
|
||||
version = "1.1.0"
|
||||
|
|
@ -685,9 +695,9 @@ checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d"
|
|||
|
||||
[[package]]
|
||||
name = "flate2"
|
||||
version = "1.1.2"
|
||||
version = "1.1.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d"
|
||||
checksum = "b375d6465b98090a5f25b1c7703f3859783755aa9a80433b36e0379a3ec2f369"
|
||||
dependencies = [
|
||||
"crc32fast",
|
||||
"miniz_oxide",
|
||||
|
|
@ -1658,6 +1668,12 @@ version = "0.8.52"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0c6a884d2998352bb4daf0183589aec883f16a6da1f4dde84d8e2e9a5409a1ce"
|
||||
|
||||
[[package]]
|
||||
name = "roff"
|
||||
version = "0.2.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "88f8660c1ff60292143c98d08fc6e2f654d722db50410e3f3797d40baaf9d8f3"
|
||||
|
||||
[[package]]
|
||||
name = "rpassword"
|
||||
version = "2.1.0"
|
||||
|
|
@ -1840,9 +1856,11 @@ version = "0.1.7"
|
|||
dependencies = [
|
||||
"clap",
|
||||
"clap_complete",
|
||||
"clap_mangen",
|
||||
"confy",
|
||||
"dialog",
|
||||
"env_logger",
|
||||
"flate2",
|
||||
"freedesktop-icons",
|
||||
"hex",
|
||||
"image",
|
||||
|
|
|
|||
|
|
@ -36,12 +36,15 @@ xdg = "3.0.0"
|
|||
[build-dependencies]
|
||||
clap = { version = "4.5.45", features = ["derive", "cargo"] }
|
||||
clap_complete = "4.5.65"
|
||||
clap_mangen = "0.2.31"
|
||||
flate2 = "1.1.8"
|
||||
|
||||
[package.metadata.deb]
|
||||
#conflicts = ["sway-profiles"]
|
||||
changelog = "debian/changelog"
|
||||
assets = [
|
||||
"$auto",
|
||||
["target/release/build/sway-de-utils-*/out/sdu.1.gz", "/usr/share/man/", "644"],
|
||||
["target/release/build/sway-de-utils-*/out/sdu.bash", "/usr/share/bash-completion/completions/", "644"],
|
||||
["target/release/build/sway-de-utils-*/out/_sdu", "/usr/share/zsh/vendor_completions/", "644"],
|
||||
["target/release/build/sway-de-utils-*/out/sdu.fish", "/usr/share/fish/vendor_completions.d/", "644"],
|
||||
|
|
|
|||
25
build.rs
25
build.rs
|
|
@ -3,27 +3,36 @@ use clap_complete::{
|
|||
generate_to,
|
||||
shells::{Bash, Elvish, Fish, Zsh},
|
||||
};
|
||||
use std::env;
|
||||
use std::io::Error;
|
||||
use std::{env, path::PathBuf};
|
||||
use std::io::{Error,prelude::Write};
|
||||
use flate2::{Compression,write::{GzEncoder}};
|
||||
|
||||
|
||||
include!("src/lib/cli.rs");
|
||||
|
||||
fn main() -> Result<(), Error> {
|
||||
let outdir = match env::var_os("OUT_DIR") {
|
||||
let out_dir = match env::var_os("OUT_DIR") {
|
||||
None => return Ok(()),
|
||||
Some(outdir) => outdir,
|
||||
Some(o) => o,
|
||||
};
|
||||
|
||||
let mut cmd = Cli::command();
|
||||
let bin_name = "sdu";
|
||||
let bash_path = generate_to(Bash, &mut cmd, bin_name, &outdir)?;
|
||||
let zsh_path = generate_to(Zsh, &mut cmd, bin_name, &outdir)?;
|
||||
let fish_path = generate_to(Fish, &mut cmd, bin_name, &outdir)?;
|
||||
let elvish_path = generate_to(Elvish, &mut cmd, bin_name, outdir)?;
|
||||
let bash_path = generate_to(Bash, &mut cmd, bin_name, &out_dir)?;
|
||||
let zsh_path = generate_to(Zsh, &mut cmd, bin_name, &out_dir)?;
|
||||
let fish_path = generate_to(Fish, &mut cmd, bin_name, &out_dir)?;
|
||||
let elvish_path = generate_to(Elvish, &mut cmd, bin_name, &out_dir)?;
|
||||
|
||||
println!(
|
||||
"cargo:warning=completion files were generated: [ {bash_path:?}, {zsh_path:?}, {fish_path:?}, {elvish_path:?} ]"
|
||||
);
|
||||
let out_dir_buf: PathBuf = out_dir.into();
|
||||
let woman = clap_mangen::Man::new(cmd);
|
||||
let mut buffer: Vec<u8> = Default::default();
|
||||
woman.render(&mut buffer)?;
|
||||
let mut e = GzEncoder::new(Vec::new(), Compression::default());
|
||||
e.write_all(&buffer)?;
|
||||
std::fs::write(out_dir_buf.join("sdu.1.gz"), e.finish()?)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
|||
1
debian/changelog
vendored
1
debian/changelog
vendored
|
|
@ -1,6 +1,7 @@
|
|||
sway-de-utils (0.1.7-1) unstable; urgency=medium
|
||||
|
||||
* implement shell completions for bash, fish, zsh
|
||||
* implement manpage generation
|
||||
* minor fix to dmenu display for shortcuts
|
||||
|
||||
-- Penelope Gwen <support@pogmom.me> Sat, 24 Jan 2026 12:48:02 -0800
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue