{"id":44807913,"url":"https://github.com/tebeka/mdfiles","last_synced_at":"2026-02-16T15:20:47.265Z","repository":{"id":326362958,"uuid":"1104069690","full_name":"tebeka/mdfiles","owner":"tebeka","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-27T10:03:38.000Z","size":24,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-05T16:40:37.935Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tebeka.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-25T17:56:49.000Z","updated_at":"2025-11-27T10:03:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/tebeka/mdfiles","commit_stats":null,"previous_names":["tebeka/mdfiles"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/tebeka/mdfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tebeka%2Fmdfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tebeka%2Fmdfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tebeka%2Fmdfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tebeka%2Fmdfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tebeka","download_url":"https://codeload.github.com/tebeka/mdfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tebeka%2Fmdfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29511071,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T09:05:14.864Z","status":"ssl_error","status_checked_at":"2026-02-16T08:55:59.364Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-16T15:20:46.530Z","updated_at":"2026-02-16T15:20:47.257Z","avatar_url":"https://github.com/tebeka.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mdfiles\n\nFind files by modification date and suffix, output as markdown links.\n\n## Features\n\n- 🔍 **Date Filtering**: Find files modified on a specific date (defaults to today)\n- 📁 **Suffix Matching**: Filter files by extension (defaults to `.go`)\n- 🌳 **Directory Traversal**: Recursively search from any root directory\n- 📝 **Markdown Output**: Results formatted as clickable markdown links\n- ⚡ **Fast**: Built in Rust with efficient directory walking\n- 🧪 **Well Tested**: Comprehensive test suite with 34 tests\n\n## Installation\n\n### From Pre-built Binaries\n\nDownload the latest release for your platform:\n\n- **Linux (AMD64)**: `mdfiles-linux-amd64`\n- **Windows (AMD64)**: `mdfiles-windows-amd64.exe`\n- **macOS (ARM64)**: `mdfiles-darwin-arm64`\n\n### From Source\n\n```bash\ngit clone https://github.com/tebeka/mdfiles.git\ncd mdfiles\ncargo build --release\n```\n\nThe binary will be at `target/release/mdfiles`.\n\n## Usage\n\n### Basic Examples\n\n```bash\n# Find all .go files modified today in current directory\nmdfiles\n\n# Find .rs files modified today\nmdfiles --suffix .rs\n\n# Find files modified on a specific date\nmdfiles --date 2025-11-25\n\n# Search in a specific directory\nmdfiles --root ./src\n\n# Combine all options\nmdfiles -d 2025-11-25 -s .md -r ./docs\n```\n\n### Output Format\n\nResults are formatted as markdown links:\n\n```markdown\n- [main.rs](./src/main.rs)\n- [lib.rs](./src/lib.rs)\n- [cli.rs](./tests/cli.rs)\n```\n\nThis makes it easy to:\n- Copy and paste into markdown documents\n- Create file lists for documentation\n- Generate project status reports\n- Track recent changes\n\n### Options\n\n```\nOptions:\n  -d, --date \u003cDATE\u003e      Date in YYYY-MM-DD format [default: today]\n  -s, --suffix \u003cSUFFIX\u003e  File suffix to match [default: .go]\n  -r, --root \u003cROOT\u003e      Root directory to start search from [default: .]\n  -h, --help             Print help\n  -V, --version          Print version\n```\n\n## Use Cases\n\n- **Find Go files changed today**: `mdfiles` (default behavior)\n- **Code review prep**: `mdfiles -d 2025-11-24 -s .rs` - list all Rust files from yesterday\n- **Documentation**: Generate file lists for README files\n- **Project tracking**: Monitor files modified on specific dates\n- **Release notes**: Track changes for release preparation\n\n## Building\n\n### Requirements\n\n- Rust 1.70 or later\n- Cargo\n\n### Build\n\n```bash\ncargo build --release\n```\n\n### Run Tests\n\n```bash\ncargo test\n```\n\nAll 34 tests (18 unit tests + 16 integration tests) should pass.\n\n## CI/CD\n\nThe project includes GitHub Actions workflows for:\n\n- **CI**: Automated testing on Linux, Windows, and macOS\n- **Release**: Automated binary builds for multiple platforms\n\nReleases are automatically created when you push a tag:\n\n```bash\ngit tag v1.0.0\ngit push origin v1.0.0\n```\n\n## Development\n\nThis 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!\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit issues or pull requests.\n\n## Project Structure\n\n```\nmdfiles/\n├── src/\n│   └── main.rs           # Main application code\n├── tests/\n│   └── cli.rs            # Integration tests\n├── .github/\n│   └── workflows/\n│       ├── ci.yml        # Continuous integration\n│       └── release.yml   # Release automation\n├── Cargo.toml            # Project metadata and dependencies\n├── LICENSE               # MIT License\n└── README.md             # This file\n```\n\n## Technical Details\n\n- **Language**: Rust (2024 edition)\n- **CLI Framework**: clap 4.5 with derive macros\n- **Date Handling**: chrono 0.4\n- **File Walking**: walkdir 2.5\n- **Testing**: assert_cmd + predicates\n\n---\n\nMade with 🦀 Rust\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftebeka%2Fmdfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftebeka%2Fmdfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftebeka%2Fmdfiles/lists"}