mirror of
https://github.com/storytold/photocraft.git
synced 2026-11-02 18:13:39 +00:00
69d277440d
Add the man-and-completions example, which writes photocraft-cli's completions for bash, zsh, fish, elvish and PowerShell (clap_complete) and its man pages (clap_mangen: photocraft-cli.1 and one per subcommand, such as photocraft-cli-convert.1) into a directory: cargo run -p photocraft-cli --example man-and-completions -- <out-dir> clap_complete and clap_mangen are dev-dependencies, so the binary is unchanged. clap_mangen gets its env feature, so the pages name each flag's environment variable as --help does; clap already has env, so Cargo.lock gains no package for it. The library exposes only `command()`, the clap definition; the args module stays private. A test runs Command::debug_assert and checks that every shell's completions and every page generate. Another repeats the example's two generate_to calls and pins the exact file list: the five completion files under the names the packages install, photocraft-cli.1, one page per subcommand, and no pages for the help subcommand. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
48 lines
1.4 KiB
TOML
48 lines
1.4 KiB
TOML
[package]
|
|
name = "photocraft-cli"
|
|
description = "Headless PhotoCraft: convert, inspect, run commands, batch, MCP server"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
build = "build.rs"
|
|
|
|
[features]
|
|
# Open HEIC/HEIF photos (the optional photocraft-heif crate). Not default so distributors choose
|
|
# it; official builds (CI, packaging/, release) build with `--features heif`.
|
|
heif = ["photocraft-codecs/heif"]
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[lib]
|
|
name = "photocraft_cli"
|
|
path = "src/lib.rs"
|
|
|
|
[[bin]]
|
|
name = "photocraft-cli"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
photocraft-automation = { path = "../../crates/automation" }
|
|
photocraft-engine = { workspace = true }
|
|
photocraft-io = { workspace = true }
|
|
photocraft-format = { path = "../../crates/format" }
|
|
photocraft-codecs = { workspace = true }
|
|
clap = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
|
|
|
|
[dev-dependencies]
|
|
# Synthetic camera raws (#7789).
|
|
photocraft-raw = { workspace = true, features = ["testgen"] }
|
|
# Shell completions and man pages (examples/man-and-completions.rs, for the packages); not in
|
|
# the binary.
|
|
clap_complete = { workspace = true }
|
|
clap_mangen = { workspace = true }
|
|
|
|
[build-dependencies]
|
|
# Icon + VERSIONINFO for photocraft-cli.exe; build.rs only uses it when targeting Windows.
|
|
winresource = "0.1"
|
|
|