https://github.com/tebeka/mdfiles
https://github.com/tebeka/mdfiles
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/tebeka/mdfiles
- Owner: tebeka
- License: mit
- Created: 2025-11-25T17:56:49.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-11-27T10:03:38.000Z (7 months ago)
- Last Synced: 2026-02-05T16:40:37.935Z (4 months ago)
- Language: Rust
- Size: 23.4 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mdfiles
Find files by modification date and suffix, output as markdown links.
## Features
- ๐ **Date Filtering**: Find files modified on a specific date (defaults to today)
- ๐ **Suffix Matching**: Filter files by extension (defaults to `.go`)
- ๐ณ **Directory Traversal**: Recursively search from any root directory
- ๐ **Markdown Output**: Results formatted as clickable markdown links
- โก **Fast**: Built in Rust with efficient directory walking
- ๐งช **Well Tested**: Comprehensive test suite with 34 tests
## Installation
### From Pre-built Binaries
Download the latest release for your platform:
- **Linux (AMD64)**: `mdfiles-linux-amd64`
- **Windows (AMD64)**: `mdfiles-windows-amd64.exe`
- **macOS (ARM64)**: `mdfiles-darwin-arm64`
### From Source
```bash
git clone https://github.com/tebeka/mdfiles.git
cd mdfiles
cargo build --release
```
The binary will be at `target/release/mdfiles`.
## Usage
### Basic Examples
```bash
# Find all .go files modified today in current directory
mdfiles
# Find .rs files modified today
mdfiles --suffix .rs
# Find files modified on a specific date
mdfiles --date 2025-11-25
# Search in a specific directory
mdfiles --root ./src
# Combine all options
mdfiles -d 2025-11-25 -s .md -r ./docs
```
### Output Format
Results are formatted as markdown links:
```markdown
- [main.rs](./src/main.rs)
- [lib.rs](./src/lib.rs)
- [cli.rs](./tests/cli.rs)
```
This makes it easy to:
- Copy and paste into markdown documents
- Create file lists for documentation
- Generate project status reports
- Track recent changes
### Options
```
Options:
-d, --date Date in YYYY-MM-DD format [default: today]
-s, --suffix File suffix to match [default: .go]
-r, --root Root directory to start search from [default: .]
-h, --help Print help
-V, --version Print version
```
## Use Cases
- **Find Go files changed today**: `mdfiles` (default behavior)
- **Code review prep**: `mdfiles -d 2025-11-24 -s .rs` - list all Rust files from yesterday
- **Documentation**: Generate file lists for README files
- **Project tracking**: Monitor files modified on specific dates
- **Release notes**: Track changes for release preparation
## Building
### Requirements
- Rust 1.70 or later
- Cargo
### Build
```bash
cargo build --release
```
### Run Tests
```bash
cargo test
```
All 34 tests (18 unit tests + 16 integration tests) should pass.
## CI/CD
The project includes GitHub Actions workflows for:
- **CI**: Automated testing on Linux, Windows, and macOS
- **Release**: Automated binary builds for multiple platforms
Releases are automatically created when you push a tag:
```bash
git tag v1.0.0
git push origin v1.0.0
```
## Development
This project was created using AI pair programming with Claude Code. The git commit history contains the prompts used to create each feature, providing insight into the development process. Check the commit messages to see how each feature was implemented!
## License
MIT License - see [LICENSE](LICENSE) file for details.
## Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
## Project Structure
```
mdfiles/
โโโ src/
โ โโโ main.rs # Main application code
โโโ tests/
โ โโโ cli.rs # Integration tests
โโโ .github/
โ โโโ workflows/
โ โโโ ci.yml # Continuous integration
โ โโโ release.yml # Release automation
โโโ Cargo.toml # Project metadata and dependencies
โโโ LICENSE # MIT License
โโโ README.md # This file
```
## Technical Details
- **Language**: Rust (2024 edition)
- **CLI Framework**: clap 4.5 with derive macros
- **Date Handling**: chrono 0.4
- **File Walking**: walkdir 2.5
- **Testing**: assert_cmd + predicates
---
Made with ๐ฆ Rust