Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yellow-footed-honeyguide/codefetch
Fast & comprehensive tool for source code analysis 📡
https://github.com/yellow-footed-honeyguide/codefetch
cli cloc code cpp sloc sloccount source-code tokei
Last synced: about 6 hours ago
JSON representation
Fast & comprehensive tool for source code analysis 📡
- Host: GitHub
- URL: https://github.com/yellow-footed-honeyguide/codefetch
- Owner: yellow-footed-honeyguide
- License: mit
- Created: 2024-09-23T13:03:49.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2024-10-22T09:12:38.000Z (17 days ago)
- Last Synced: 2024-10-23T10:14:24.165Z (16 days ago)
- Topics: cli, cloc, code, cpp, sloc, sloccount, source-code, tokei
- Language: C++
- Homepage:
- Size: 433 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CodeFetch
A modern, comprehensive code analysis tool for software projects.
![codefetch in action](assets/codefetch_in_action.jpg)
## Features
> CodeFetch provides detailed insights into your codebase,offering a complete analysis suite
> that helps developers understand their projects better through multiple metrics.- Line counting statistics (code, comments, total)
- Language distribution analysis
- License detection
- Build system identification
- Git repository statistics
- Commit history
- Contributor analysis
- Timeline information
- Multi-threaded file processing
- Beautiful, colorful console output## Getting Started
### Dependencies
- C++17 or higher
- CMake 3.10+
- libgit2 for Git statistics
- CLI11 for command line parsing### Build & Install from source
```bash
git clone https://github.com/yourusername/codefetch.git
cd codefetch
mkdir build && cd build
cmake .. && make
# for system-wide installation (may require elevated privileges):
sudo make install
```## Usage
Basic usage:
```bash
codefetch # Analyze directory with all modules
```Available options:
```bash
-c, --line_counter Show line counter statistics
-l, --languages Show language statistics
-g, --git-statistics Show git statistics information
-m, --metabuild_system Show metabuild system information
-i, --license Show license information
-v, --version Show version information
```## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the Project
- Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
- Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
- Push to the Branch (`git push origin feature/AmazingFeature`)
- Open a Pull Request### Adding New Modules
The project is designed to be modular. To add a new analysis module:
1. Create a new class that inherits from `CodeFetchModule`
2. Implement the required virtual functions:
- `process_file(const fs::path& file_path)`
- `print_stats() const`
3. Add your module to the main processing loop in `main.cpp`## License
Distributed under the MIT License. See `LICENSE` file for more information.