A tool for automating the boring stuff when starting a new project.

lotus 54df120ff3 addressed the rest of the shellcheck issues. all clean now :) 1 week ago
.boil f26e386433 revert cxxflags 2 months ago
tests f9d556bf21 removed dependency on Golang, improved makefiles, refactored code, prepared test dir, improved README 6 months ago
.gitignore 1b8b591da8 first commit 8 months ago
LICENSE.md 1b8b591da8 first commit 8 months ago
README.md 16de05ec43 added include and test dirs for c and cpp projects, updated README. 6 months ago
boil.1 b65c3c8142 added new info into readme and manpage 6 months ago
boil.sh 54df120ff3 addressed the rest of the shellcheck issues. all clean now :) 1 week ago
makefile 86d418faf0 fixed man page location 2 months ago





I write a lot of code. When starting a new project there is always little bits and pieces I have to go around and grab when I want to start a new project. The goal of this project is to do all that boilerplate work for me with one command. I wanted to gear this towards C/C++ projects, and Shell projects. This tool is opinionated towards my preferred tools and workflow, but it can be easily swapped around to suit your preferences.

Your new project would look like this:

user@comp $ boil -n MyNewProj -u C++ -l mit
user@comp $ tree -a MyNewProj
├── clang_complete
├── .git
├── .gitignore
├── include
├── LICENSE.md
├── makefile
├── MyNewProj.1
├── README.md
└── tests

3 directories, 6 files


  • Git
  • ed (the standard text editor)
  • POSIX shell
  • POSIX make


Simply run:

make deps
sudo make install

# to uninstall
sudo make uninstall

make deps installs the .boil directory at /home/user/


boil                              # run in interactive mode
boil -n coolcode -u C -l bsd3     # setup C project named 'coolcode', with a BSD 3-Clause license
boil -n deadbeef -u c++ -l art    # setup C++ project named 'deadbeef', with a Artistic license
boil -h                           # show a help message
boil -v                           # show the version info

# valid licenses to use with -l
agpl                              # Affero General Public License
apache                            # Apache 2.0
art                               # Artistic (aka Perl) License
bsd0                              # BSD 0-Clause (ISC-esque)
bsd2                              # BSD 2-Clause
bsd3                              # BSD 3-Clause
bsd4                              # BSD 4-Clause (Original BSD License)
bsl                               # Boost Software License
epl                               # Eclipse Public License
gpl2                              # General Public License v2
gpl3                              # General Public License v3
isc                               # Internet Systems Consortium License
lgpl2                             # Lesser GPL v2
lgpl3                             # Lesser GPL v3
mit                               # MIT License
mpl                               # Mozilla Public License
un                                # The Unlicense
zlib                              # zlib/libpng License


When we make the LICENSE.md file from template, we use the global git username (git config --global user.name) I would also like to expand this tool to allow for Python and Ruby projects.

License / Disclaimer

This project is licensed under the 3-Clause BSD license. (See LICENSE.md) Please make sure to cook thoroughly before consuming. Artwork courtesy of macrovector.