mirror of
https://github.com/kristoferssolo/project-finder.git
synced 2025-10-21 19:50:35 +00:00
docs: add readme
This commit is contained in:
parent
4613d4ce48
commit
4711a77f7b
1
.github/workflows/publish.yml
vendored
1
.github/workflows/publish.yml
vendored
@ -73,7 +73,6 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
cd target/${{ matrix.target }}/release
|
cd target/${{ matrix.target }}/release
|
||||||
tar czf ../../project-finder-${{ matrix.target }}.tar.gz project-finder
|
tar czf ../../project-finder-${{ matrix.target }}.tar.gz project-finder
|
||||||
fi
|
|
||||||
- name: Upload artifacts
|
- name: Upload artifacts
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
|||||||
90
README.md
Normal file
90
README.md
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
# Project Finder
|
||||||
|
|
||||||
|
A command-line tool to discover coding projects in specified directories.
|
||||||
|
It identifies projects based on common marker files (e.g., `package.json`, `Cargo.toml`, `.git` directories).
|
||||||
|
|
||||||
|
## Goal
|
||||||
|
|
||||||
|
The goal of this project is to quickly and efficiently locate coding projects within a directory structure.
|
||||||
|
This is particularly useful for developers working in large codebases or managing multiple repositories.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
* **Fast project discovery:** Quickly scans directories to identify potential projects.
|
||||||
|
* **Multiple project types:** Recognizes projects based on various marker files for different languages and build systems.
|
||||||
|
* **Configurable search depth:** Limits the search depth to improve performance.
|
||||||
|
* **Verbose output:** Provides detailed information about the search process.
|
||||||
|
* **Workspace Awareness:** Detects and handles workspace configurations correctly, such as Javascript and Rust workspaces.
|
||||||
|
* **Concurrency:** Uses asynchronous tasks to process multiple directories in parallel, improving performance.
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
To use Project Finder, you need the following dependencies installed on your system:
|
||||||
|
|
||||||
|
* **fd:** A simple, fast, and user-friendly alternative to `find`.
|
||||||
|
* Installation instructions: [https://github.com/sharkdp/fd#installation](https://github.com/sharkdp/fd#installation)
|
||||||
|
* **ripgrep (rg):** A line-oriented search tool that recursively searches directories for a regex pattern.
|
||||||
|
* Installation instructions: [https://github.com/BurntSushi/ripgrep#installation](https://github.com/BurntSushi/ripgrep#installation)
|
||||||
|
|
||||||
|
These tools must be available in your system's PATH.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cargo install project-finder
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```bash
|
||||||
|
project-finder [OPTIONS] [PATHS]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Options
|
||||||
|
|
||||||
|
* **-d, --depth <DEPTH>**: Maximum search depth (default: 5)
|
||||||
|
* **-n, --max-results <MAX_RESULTS>**: Maximum number of results to return (default: 0, unlimited)
|
||||||
|
* **-v, --verbose**: Show verbose output
|
||||||
|
* **PATHS**: Directories to search for projects (default: ".")
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
|
||||||
|
* Find projects in the current directory with the default depth:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
project-finder
|
||||||
|
```
|
||||||
|
|
||||||
|
* Find projects in a specific directory with a maximum depth of 3:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
project-finder --depth 3 /path/to/search
|
||||||
|
```
|
||||||
|
|
||||||
|
* Find projects in multiple directories with verbose output:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
project-finder --verbose /path/to/search1 /path/to/search2
|
||||||
|
```
|
||||||
|
|
||||||
|
* Limit the number of results to 10:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
project-finder --max-results 10
|
||||||
|
```
|
||||||
|
|
||||||
|
## Use Cases
|
||||||
|
|
||||||
|
* **Quickly locating projects:** Easily find all projects within a large directory structure.
|
||||||
|
* **Managing multiple repositories:** Discover all repositories in a directory.
|
||||||
|
* **Automated scripting:** Integrate project discovery into scripts for build automation, testing, or deployment.
|
||||||
|
* **Workspace management:** Identify workspace roots for managing multiple related projects.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This project is dual-licensed under either:
|
||||||
|
|
||||||
|
* MIT License ([LICENSE-MIT](LICENSE-MIT) or [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT))
|
||||||
|
* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0))
|
||||||
|
|
||||||
|
at your option.
|
||||||
Loading…
Reference in New Issue
Block a user