feat: add --list-formats command, support auto-generated man pages
Release / check-release (push) Successful in 16s
Release / build_gnu (push) Skipped
Release / build_musl (push) Skipped
Release / build_windows (push) Skipped
Release / package_gnu (deb) (push) Skipped
Release / package_gnu (rpm) (push) Skipped
Release / package_musl (deb) (push) Skipped
Release / package_musl (rpm) (push) Skipped
Release / publish-release (push) Skipped
CI / Test (push) Successful in 1m43s
CI / Build Linux (push) Successful in 2m21s

This commit is contained in:
Elias Wendland
2026-07-16 13:26:49 +02:00
parent f58f73194e
commit a372937854
4 changed files with 70 additions and 11 deletions
+14
View File
@@ -16,6 +16,10 @@ use std::env;
use std::fs;
use std::path::Path;
use std::process::Command;
use clap::CommandFactory;
#[path = "src/args.rs"]
mod args;
fn run_command(cmd: &str, args: &[&str]) -> Option<String> {
let output = Command::new(cmd).args(args).output().ok()?;
@@ -104,4 +108,14 @@ fn main() {
let version_path = Path::new(&out_dir).join("version.txt");
fs::write(&version_path, &version_string).unwrap();
// Generate man page
let man_dir = Path::new("target").join("man");
fs::create_dir_all(&man_dir).unwrap();
let mut cmd = args::Args::command();
cmd = cmd.name("convertis").version(env!("CARGO_PKG_VERSION"));
let man = clap_mangen::Man::new(cmd);
let mut buffer: Vec<u8> = Default::default();
man.render(&mut buffer).unwrap();
fs::write(man_dir.join("convertis.1"), buffer).unwrap();
}