Skip to content

Release v0.4.0

Choose a tag to compare

@github-actions github-actions released this 09 Aug 18:11
dec5e81

Release v0.4.0

Changelog

[0.4.0] - 2025-01-10

Added

  • Stable machine-readable outputs with streaming:
    • --json: Outputs a single JSON array (streamed). Supports --pretty for human-friendly indentation.
    • --ndjson: Newline-delimited JSON, one object per line.
    • --csv: CSV with a header row. Proper escaping and UTF-8 handling via the csv crate.
    • Flags are mutually exclusive; --pretty only affects --json.
  • Stable schema across machine modes with these fields (always present; nulls where appropriate):
    • path, name, extension, file_type, size_bytes, modified, created, accessed, mode_octal, owner_user, owner_group, inode, hard_links, symlink_target, is_hidden, git_status, and plugin container for plugin enrichments.
  • Streaming output writers to avoid unbounded memory growth on large listings.
  • Optional Git status integration into machine outputs when -G is used (no extra git work otherwise).
  • Archive introspection (no extraction to disk):
    • Automatic detection for .zip, .tar, .tar.gz, .tgz when a single archive file is passed as the path
    • Lists archive contents as a virtual directory and integrates with existing views: default, long, table, grid, tree, recursive
    • Works with filters, sorting, depth control, and machine outputs (--json, --ndjson, --csv)
    • Symlink targets in tar archives are exposed as custom_fields["symlink_target"]
  • Single-file listing:
    • Passing a regular file path now lists that single file (instead of erroring with Not a directory)
    • All formatters and machine outputs apply normally
  • Long format quality-of-life flags:
    • --hide-group: Hide the group column (great for single-user systems). Also configurable via formatters.long.hide_group in the config file.
    • --relative-dates: Show relative modified times (e.g., "2h ago"). Also configurable via formatters.long.relative_dates.
    • Relative dates are powered by chrono-humanize for accurate human-friendly phrasing.

Changed

  • CLI: Added mutually exclusive flags group for machine output (--json, --ndjson, --csv) and --pretty.
  • Internal: Introduced OutputMode in CLI args to route to human vs machine formatters.
  • Internal: Added a serializable adapter to normalize timestamps to ISO-8601 UTC and permissions to octal.
  • Docs: Updated README with a new "Machine Output" section including schema and examples.
  • Long format date column alignment is now consistent even when using relative dates.
  • Grid formatter no longer appends an extra trailing blank newline; output ends without an extra empty line.

Fixed

  • Non-fatal metadata read failures are handled gracefully during machine output; entries still emit with nulls where needed and a warning on stderr, without corrupting stdout.
  • Graceful handling when the provided path is a single file or an archive: no erroneous directory reads
  • Relative date phrasing now correctly uses "X ago" for past times and "in X" for future times.

SHA256 Checksums

78edf8a071bef5558024eccbfbf3af0b6540877aa7d384fa8d62fd21a5c1b5b8  lla-linux-amd64/lla-linux-amd64
1070dfd14e45993f929ca5eaac380f0a9474eb3993d241d338949f59256df9ea  lla-linux-arm64/lla-linux-arm64
4d8bdfe4dca8e845b0f8281d426ae8bffb8ae902d8b7aed1778084a61471f04e  lla-linux-i686/lla-linux-i686
20b71bee4880d666b53608de715ea2bcb8bf79ccbe71e2cd267552a8d15122d5  lla-macos-amd64/lla-macos-amd64
6c27224ad49a3b6db5b2d8e04017272381c2c43ad2d44c700a9da4edc1170896  lla-macos-arm64/lla-macos-arm64
4d6d0ff11314da4a12f264c83e151e1e458c632b4eed20aefbe6325dfba7d718  themes.zip