btrfs-cli 0.13.0

User-space command-line tool for inspecting and managing Btrfs filesystems
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.89"
name = "btrfs-cli"
version = "0.13.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
default-run = "btrfs"
description = "User-space command-line tool for inspecting and managing Btrfs filesystems"
homepage = "https://rustutils.gitlab.io/btrfsutils"
readme = "README.md"
keywords = [
    "btrfs",
    "filesystem",
    "cli",
    "linux",
    "storage",
]
categories = [
    "command-line-utilities",
    "filesystem",
]
license = "GPL-2.0-only"
repository = "https://github.com/rustutils/btrfsutils"
resolver = "2"

[package.metadata.docs.rs]
all-features = true
targets = ["x86_64-unknown-linux-gnu"]

[package.metadata.deb]
name = "btrfsutils"
maintainer = "Patrick Elsen <pelsen@xfbs.net>"
section = "admin"
priority = "optional"
depends = ""
conflicts = "btrfs-progs"
replaces = "btrfs-progs"
provides = "btrfs-progs"
extended-description = """
A clean-room reimplementation of btrfs-progs in Rust. Ships the
btrfs CLI as a single multicall binary with all inspection and
management commands plus mkfs, tune, and an experimental userspace
FUSE driver.
"""
assets = [
    [
    "target/release/btrfs",
    "usr/bin/btrfs",
    "0755",
],
    [
    "target/release/../symlinks/*",
    "usr/bin/",
    "0755",
],
    [
    "../README.md",
    "usr/share/doc/btrfsutils/README",
    "0644",
],
    [
    "../LICENSE.md",
    "usr/share/doc/btrfsutils/LICENSE",
    "0644",
],
    [
    "../CHANGELOG.md",
    "usr/share/doc/btrfsutils/CHANGELOG",
    "0644",
],
    [
    "target/release/../gen/man/*.1",
    "usr/share/man/man1/",
    "0644",
],
    [
    "target/release/../gen/completions/btrfs.bash",
    "usr/share/bash-completion/completions/btrfs",
    "0644",
],
    [
    "target/release/../gen/completions/mkfs.btrfs.bash",
    "usr/share/bash-completion/completions/mkfs.btrfs",
    "0644",
],
    [
    "target/release/../gen/completions/btrfs.fish",
    "usr/share/fish/vendor_completions.d/btrfs.fish",
    "0644",
],
    [
    "target/release/../gen/completions/mkfs.btrfs.fish",
    "usr/share/fish/vendor_completions.d/mkfs.btrfs.fish",
    "0644",
],
    [
    "target/release/../gen/completions/_btrfs",
    "usr/share/zsh/vendor-completions/_btrfs",
    "0644",
],
    [
    "target/release/../gen/completions/_mkfs.btrfs",
    "usr/share/zsh/vendor-completions/_mkfs.btrfs",
    "0644",
],
]

[package.metadata.generate-rpm]
name = "btrfsutils"
license = "GPL-2.0-only"
summary = "Rust reimplementation of the btrfs command-line tools"
auto-req = "no"
post_install_script = """
for t in mkfs.btrfs btrfs-mkfs btrfstune btrfs-tune; do
    ln -sf btrfs /usr/bin/$t
done
"""
post_uninstall_script = """
if [ "$1" = 0 ]; then
    for t in mkfs.btrfs btrfs-mkfs btrfstune btrfs-tune; do
        rm -f /usr/bin/$t
    done
fi
"""

[[package.metadata.generate-rpm.assets]]
source = "target/release/btrfs"
dest = "/usr/bin/btrfs"
mode = "755"

[[package.metadata.generate-rpm.assets]]
source = "../README.md"
dest = "/usr/share/doc/btrfsutils/README"
mode = "644"
doc = true

[[package.metadata.generate-rpm.assets]]
source = "../LICENSE.md"
dest = "/usr/share/doc/btrfsutils/LICENSE"
mode = "644"
doc = true

[[package.metadata.generate-rpm.assets]]
source = "../CHANGELOG.md"
dest = "/usr/share/doc/btrfsutils/CHANGELOG"
mode = "644"
doc = true

[[package.metadata.generate-rpm.assets]]
source = "target/release/../gen/man/*.1"
dest = "/usr/share/man/man1/"
mode = "644"
doc = true

[[package.metadata.generate-rpm.assets]]
source = "target/release/../gen/completions/btrfs.bash"
dest = "/usr/share/bash-completion/completions/btrfs"
mode = "644"

[[package.metadata.generate-rpm.assets]]
source = "target/release/../gen/completions/mkfs.btrfs.bash"
dest = "/usr/share/bash-completion/completions/mkfs.btrfs"
mode = "644"

[[package.metadata.generate-rpm.assets]]
source = "target/release/../gen/completions/btrfs.fish"
dest = "/usr/share/fish/vendor_completions.d/btrfs.fish"
mode = "644"

[[package.metadata.generate-rpm.assets]]
source = "target/release/../gen/completions/mkfs.btrfs.fish"
dest = "/usr/share/fish/vendor_completions.d/mkfs.btrfs.fish"
mode = "644"

[[package.metadata.generate-rpm.assets]]
source = "target/release/../gen/completions/_btrfs"
dest = "/usr/share/zsh/vendor-completions/_btrfs"
mode = "644"

[[package.metadata.generate-rpm.assets]]
source = "target/release/../gen/completions/_mkfs.btrfs"
dest = "/usr/share/zsh/vendor-completions/_mkfs.btrfs"
mode = "644"

[package.metadata.generate-rpm.conflicts]
btrfs-progs = "*"

[package.metadata.generate-rpm.obsoletes]
btrfs-progs = "*"

[features]
default = [
    "mkfs",
    "tune",
]
fuse = ["dep:btrfs-fuse"]
mkfs = ["dep:btrfs-mkfs"]
multicall = []
tune = ["dep:btrfs-tune"]

[lib]
name = "btrfs_cli"
path = "src/lib.rs"

[[bin]]
name = "btrfs"
path = "src/main.rs"

[[test]]
name = "arguments"
path = "tests/arguments.rs"

[[test]]
name = "commands"
path = "tests/commands.rs"

[[test]]
name = "common"
path = "tests/common.rs"

[[test]]
name = "help"
path = "tests/help.rs"

[dependencies.anyhow]
version = "1.0.102"

[dependencies.btrfs-disk]
version = "0.13.0"

[dependencies.btrfs-fs]
version = "0.13.0"

[dependencies.btrfs-fuse]
version = "0.13.0"
optional = true

[dependencies.btrfs-mkfs]
version = "0.13.0"
optional = true

[dependencies.btrfs-stream]
version = "0.13.0"
features = ["receive"]

[dependencies.btrfs-transaction]
version = "0.13.0"

[dependencies.btrfs-tune]
version = "0.13.0"
optional = true

[dependencies.btrfs-uapi]
version = "0.13.0"

[dependencies.chrono]
version = "0.4.44"
features = ["clock"]
default-features = false

[dependencies.clap]
version = "4.6.0"
features = [
    "derive",
    "wrap_help",
    "suggestions",
    "env",
]

[dependencies.cols]
version = "0.3.2"
features = [
    "derive",
    "color",
]

[dependencies.console]
version = "0.15"

[dependencies.env_logger]
version = "0.11.9"

[dependencies.flate2]
version = "1"

[dependencies.libc]
version = "0.2"

[dependencies.log]
version = "0.4.29"

[dependencies.lzokay]
version = "2"

[dependencies.nix]
version = "0.31.2"
features = [
    "ioctl",
    "fs",
]

[dependencies.regex-lite]
version = "0.1"

[dependencies.serde]
version = "1"
features = ["derive"]

[dependencies.serde_json]
version = "1"

[dependencies.tokio]
version = "1"
features = ["rt"]
default-features = false

[dependencies.uuid]
version = "1"
features = [
    "v4",
    "v7",
]

[dependencies.zstd]
version = "0.13"

[dev-dependencies.insta]
version = "1"

[dev-dependencies.tempfile]
version = "3"