A simple CLI tool to bootstrap new projects with opinionated defaults.
- Creates base directory structure
- Adds a
LICENSE
file (MIT or GPL-3) - Initializes a Git repository (
git init
) - Adds a sensible
.gitignore
- Supports Go, Python, C, Java and Javascript
- CLI-driven—no GUI
- Adds a
README.md
file
- Clone this repo:
git clone https://github.com/jean0t/project_init.git cd project_init
- Build the binary:
go build -o project_init ./project_init
- (Optionally) move it into your
$PATH
:mv project_init /usr/local/bin/
OBS: you can avoid clone the repo and build the binary by yourself, simply download in the releases the binary and go to step 3 directly
project_init -lang <go|python> [-license <mit|gpl-3>] [-gitignore=<true|false>] <project_name>
Flag | Description | Default |
---|---|---|
-lang |
Language scaffold to generate | python |
-license |
License type (mit or gpl-3 ) |
gpl-3 |
-gitignore |
Include a .gitignore file (true or false ) |
true |
- Create a Go project with MIT license:
project_init myapp --lang go --license mit
- Create a Python project with GPL-3 and no
.gitignore
:project_init service --lang python --license gpl-3 --gitignore=false
myapp/
├── LICENSE # MIT or GPL-3, per flag
├── .gitignore
├── src/ # source code
│ └── main.go # or main.py
├── tests/ # test stubs
└── .git/ # Git repo
Each new project also gets a starter README.md
with:
# <project_name>
A brief description of what the project does.
## Installation
Instructions to install or build.
## Usage
Examples of how to run the project.
## License
<MIT or GPL-3> © <year> <your name>
- Add support for more languages
- Enhance templates (customizable README, code samples)
- Allow custom license text or additional license types
Forks and pull requests are welcome!
My motivation: I loved Crystal’s built-in crystal init
skeleton generator and wanted something similar for the languages I use every day.
Feel free to add new languages, improve templates, or suggest enhancements.