Repository navigation
Releases: akpw/reny
Releases · akpw/reny
Release list
v1.1.1
Reny v1.1.1
📖 Blog
• The Next Chapter in File Organization: Introducing Reny -- virtual views, directory restructuring, and batch operations
✨ New Features
Modular Architecture: Refactored codebase into focused domain packages:
reny.core: Typed models (ScanOptions,RenamePlanItem,SortOrder), generator traversal (DirectoryWalker), sorting, filtering, and Git status trie(GitStatusTracker)reny.config: Config loader (load_config_defaults) and.renyignoreresolver (IgnoreResolver)reny.renamer.transforms: Transforms for index, pad, date, text, and regex replacementreny.structure: Engines for folder flattening (FolderFlattener) and directory reorganization (DirectoryOrganizer)reny.view: ANSI styling (TerminalStyler) and output formatters (TreeFormatter,StatisticsFormatter)
CLI Options & Subcommand Parsing:
- Position-Independent Options: Global options (
-d,-r,-el,-ex,-in,-q,-g,-s) can be specified before or after subcommands (e.g.reny pad -d ./photos -md 3andreny -d ./photos pad -md 3) - Command Summary Table (
reny -h): Formatted<command>table in root help - Scoped Subcommand Help: Subcommands display only applicable flags; non-applicable options are filtered out (e.g.
-b/--byand-df/--date-formatscoped strictly toprintandorganize) - Incompatible Option Validation: Rejects invalid combinations (e.g.
reny index -borreny -b type indexreturns an error) - Directory Statistics (
reny stats): Calculates file count, directory count, and total disk usage across matching paths
🚀 Improvements
- Documentation: Added command reference table to
README.md - Test Suite: Expanded test suite covering traversal, transforms, Git trie, and CLI argument parsing
🐛 Bug Fixes
- Subparser Defaults: Fixed parent parser defaults overriding options already parsed at the root level
- Flag Collision: Fixed
-ftcollision between global--file-typeandremove's-ft/--from-tailby scoping media filtering toprintandstats - Parameter Validation: Added validation for required
-bonorganizeand automated-elleveling onflatten
⚙️ Configuration Options (config.toml)
[source]
dir = "."
[recursion]
recursive = true
end_level = 2
[filter]
include = "*.*"
exclude = ".*"
[views]
show_size = true
by = "type"
[misc]
sort = "na"
color = 1