Skip to main content

Crate chezmoi_files

Crate chezmoi_files 

Source
Expand description

§chezmoi-files

A command-line utility and library for generating colorized tree visualizations of file paths.

This crate provides functionality for:

  • Building hierarchical tree structures from file paths
  • Filtering paths using glob patterns
  • Colorizing output based on file types
  • Configuring exclusion and inclusion rules

§Usage as a Binary

# Install from crates.io
cargo install chezmoi-files

# Use with chezmoi
chezmoi managed | chezmoi-files

# Use with any file list
find . -type f | chezmoi-files --sort name --stats

§Usage as a Library

use chezmoi_files::{TreeNode, ColorScheme, Config};

// Create a tree structure
let mut root = TreeNode::new();
root.add_path(vec!["src", "main.rs"]);
root.add_path(vec!["src", "lib.rs"]);

// Load configuration
let config = Config::default();

// Create color scheme
let color_scheme = ColorScheme::new();

§Features

  • Glob Pattern Filtering: Advanced pattern matching with wildcards (*, ?, [abc], [a-z])
  • Customizable Colors: Configure colors for folders, files, and specific extensions
  • Multiple Sorting Options: Sort by name, type, or keep original order
  • Statistics: Display counts of files, directories, and excluded items
  • Fast: Optimized Rust implementation with minimal overhead

§Configuration

Configuration is loaded from ~/.config/chezmoi/chezmoi-files.toml:

[excluded-files]
files = [
    "DS_Store",
    "*.tmp",
    "cache/*",
]

[included-files]
files = []

[colors]
enabled = true
folder = "white"
default-file = "blue"

[colors.extensions]
".rs" = "red"
".py" = "green"

Re-exports§

pub use color::ColorScheme;
pub use config::ColorConfig;
pub use config::Config;
pub use config::FileList;
pub use tree::TreeDepth;
pub use tree::TreeNode;
pub use tree::TreeParams;
pub use tree::TreePart;
pub use tree::TreeTrunk;

Modules§

color
Color scheme module for syntax-highlighted output.
config
Configuration module for file filtering.
tree
Tree structure module for hierarchical file path visualization.