https://github.com/nousefreak/projecthelper
Structure git projects
https://github.com/nousefreak/projecthelper
cli git hacktoberfest repository structure
Last synced: 12 months ago
JSON representation
Structure git projects
- Host: GitHub
- URL: https://github.com/nousefreak/projecthelper
- Owner: NoUseFreak
- License: mit
- Created: 2023-12-28T22:38:38.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-03-13T00:26:53.000Z (over 1 year ago)
- Last Synced: 2025-03-30T02:22:29.088Z (about 1 year ago)
- Topics: cli, git, hacktoberfest, repository, structure
- Language: Go
- Homepage:
- Size: 374 KB
- Stars: 3
- Watchers: 3
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# Project Helper
[](https://github.com/NoUseFreak/projecthelper/releases)
[](ihttps://github.com/NoUseFreak/projecthelper/actions/workflows/ci.yml)
[](https://github.com/NoUseFreak/projecthelper/blob/main/LICENSE)
[](https://stenic.io)
> Project Helper helps you structure your projects on your filesystem.
If you like your projects to be structured like this, that this CLI tool is for you!
```
❯ tree -L 3 ~/src
/home/dries/src
└── github.com
├── nousefreak
│ ├── projecthelper
│ └── warpdir
└── stenic
├── k8status
└── ledger
```
I use `~/src` as the `basedir` for all my projects.
## Install
```bash
# Download the binary
go install github.com/nousefreak/projecthelper@latest
# Install the ph alias
projecthelper install
```
## Commands
```bash
# Run setup (manages `.config/projecthelper/config.yaml`
ph setup
# Clone to `${basedir}/github.com/nousefreak/projecthelper`
ph clone https://github.com/nousefreak/projecthelper
# Clones all repos (set `GITHUB_TOKEN` to include private)
ph org github.com/nousefreak
# Open a fuzzyfinder that will `cd` to the repo
ph go [search]
# Shorthand for `ph go`
ph [search]
# Run a `git fetch` on all repos
ph update
# Show commits made to any repository in the last 2 days
ph wdid 2 days
```
## Config
```yaml
# The root of all projects
basedir: $HOME/src
# Rename repository hosts to an alias for using different ssh keys
renameRepo:
gh-personal: github.com/nousefreak
gh-work: github.com/stenic
# Add extra static directories outside of the basedir
extraDirs:
- $HOME/.config/nvim
# Exclude directories you don't want to include in the fuzzyfinder
excludeDirs:
- $HOME/src/gitlab.com/oldstuff
```