Skip to content

v0.4.0

Latest

Choose a tag to compare

@TimKoornstra TimKoornstra released this 09 May 14:37

🎉 Release v0.4.0: File Output & Smarter Type Filtering!

repoyank v0.4.0 is a focused release that adds direct file output and improves extension filtering for compound file types.

🙏 Thanks:

Special thanks to Siem Kleuskens (@swekkiekekkie) for contributing key work in this release, including the new file output option and improved compound extension filtering.

✨ Key Highlights & New Features:

  • Write Output Directly to a File (-o, --output <FILE>):
    • Save generated repoyank output to a file instead of copying it to the clipboard.
    • Works with both relative and absolute paths.
    • Parent directories are created automatically when needed.
    • Clipboard output remains the default behavior when -o/--output is not provided.
    • The final summary now reports that files were written, including the approximate token count and destination path.

🐛 Fixes & Improvements:

  • Compound Extension Filtering:
    • Type filtering now supports compound extensions like contract.json.
    • For example, this now correctly matches files such as schema.contract.json:
      repoyank -a -t contract.json .
    • Existing single-extension filters like -t rs,md continue to work as before.

🔄 CLI Changes:

No breaking changes in this release.

  • New option:

    -o, --output <FILE>

    Writes generated output to FILE instead of copying to the clipboard.

  • Dry run behavior remains safe:

    repoyank -n -a 'docs/**/*.md' -o exports/docs-snippet.md

    This previews the output but does not write to the file or touch the clipboard.

🛠️ Installation:

No changes to the installation process.

  • Crates.io (Rust ecosystem):

    cargo install repoyank
  • AUR (Arch Linux):
    If you use an AUR helper like paru or yay:

    paru -S repoyank
    # or
    yay -S repoyank
  • Latest development version (from GitHub):

    cargo install --git https://github.com/TimKoornstra/repoyank.git --branch main

📝 Example Usage:

  1. Write all matching Rust files to a file:

    repoyank -a -t rs src/ -o /tmp/repoyank-output.txt
  2. Use a relative output path:

    repoyank -a 'docs/**/*.md' -o exports/docs-snippet.md
  3. Filter by a compound extension:

    repoyank -a -t contract.json .