ffizer 2.13.7

ffizer is a files and folders initializer / generator. It creates or updates any kind (or part) of project from template(s)
Documentation
[package]
name = "ffizer"
version = "2.13.7"
description = """ffizer is a files and folders initializer / generator.
It creates or updates any kind (or part) of project from template(s)"""
readme = "README.md"
license = "CC0-1.0"
keywords = ["project", "generator", "template", "skeleton"]
categories = ["command-line-utilities", "development-tools", "template-engine"]
repository = "https://github.com/ffizer/ffizer"
homepage = "https://ffizer.github.io/ffizer/book/"
exclude = ["/.github/**", "/docs/**", "/scripts/**", ".gitignore", "/tests/**"]
edition = "2024"

[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/{ version }/{ name }_{ version }-{ target }{ archive-suffix }"
bin-dir = "{ name }_{ version }-{ target }/{ bin }{ binary-ext }"
pkg-fmt = "tgz"

[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-fmt = "zip"

[package.metadata.release]
pre-release-commit-message = "🚀 (cargo-release) version {{version}}"
tag-prefix = ""
tag-name = "{{prefix}}{{version}}"
tag-message = "🔖 {{version}}"

[dependencies]
clap = { version = "4", features = ["derive"] }
cliclack = "0.3"
console = "0.16"
directories = "6"
git2 = { version = "0.20", optional = true }
git2_credentials = { version = "0.15", optional = true }
globset = "0.4"
handlebars = "6"
handlebars_misc_helpers = { version = "0.17", features = [
    "string",
    "http_reqwest",
    "json",
    "jsonnet",
], default-features = false }
human-panic = { version = "2", optional = true }
lazy_static = "1"
md5 = "0.8"
regex = "1"
run_script = "0.11"
schemars = "1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_plain = "1"
serde_yaml = "0.9"
similar = { version = "2", features = ["unicode", "inline"] }
tempfile = "3"
thiserror = "2"
tracing = "0.1"
tracing-error = "0.2"
tracing-subscriber = { version = "0.3", optional = true, features = [
    "registry",
    "fmt",
    "ansi",
    "env-filter",
] }
walkdir = "2"

[dev-dependencies]
assert_cmd = "2"
predicates = "3"
pretty_assertions = "1"
rstest = "0.26"
# rexpect = "0.3"
similar-asserts = "1"
test-generator = "0.3"
test-trace = "0.3"
# traced-test = "1"     # 1.0.2 & 0.5 failed to compile on stable due to "#![feature(associated_type_defaults)]"

[[bin]]
name = "ffizer"
path = "src/main.rs"
doc = false
# HACK to define dependencies only for cli
# see https://github.com/rust-lang/cargo/issues/1982
required-features = ["cli"]

[target.'cfg(all(unix, not(target_os = "redox")))'.dependencies]
libc = "0.2"
openssl = { version = "0.10", features = ["vendored"] }

[target.'cfg(windows)'.dependencies]
winapi = "0.3"

# see https://github.com/johnthagen/min-sized-rust
[profile.release]
# Enables link time optimizations which tells the compiler to optimize code generation at link time and can result in dropping code that is not used.
lto = true
# Stops Rust generating a helpful stack trace and panic message when it panics. With this optimization it will be much harder to figure out what went wrong when the program crashes.
panic = 'abort'
# Tells the compiler to optimize for minimal code size. This will make the code less performant but it will take up less space.
opt-level = 'z'
strip = true
# Tells the compiler to use only one code generator instead of running several in parallel. Disabling parallel code generation makes the compilation slower but makes all optimizations possible.
codegen-units = 1

[features]
default = ["cli"]
test_remote = []                                            # feature has no explicit dependencies
cli = ["git2", "dep:human-panic", "dep:tracing-subscriber"]
git2 = ["dep:git2", "dep:git2_credentials"]