Skip to content

Releases: akpw/reny

Release list

v1.1.1

Choose a tag to compare

@akpw akpw released this 10 Sep 13:58

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 .renyignore resolver (IgnoreResolver)
  • reny.renamer.transforms: Transforms for index, pad, date, text, and regex replacement
  • reny.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 3 and reny -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/--by and -df/--date-format scoped strictly to print and organize)
  • Incompatible Option Validation: Rejects invalid combinations (e.g. reny index -b or reny -b type index returns 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 -ft collision between global --file-type and remove's -ft/--from-tail by scoping media filtering to print and stats
  • Parameter Validation: Added validation for required -b on organize and automated -el leveling on flatten

⚙️ 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