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

lotus 82c947a03d fixed man install path 1 month ago
.boil f9d556bf21 removed dependency on Golang, improved makefiles, refactored code, prepared test dir, improved README 2 months ago
tests f9d556bf21 removed dependency on Golang, improved makefiles, refactored code, prepared test dir, improved README 2 months ago
.gitignore 1b8b591da8 first commit 5 months ago
LICENSE.md 1b8b591da8 first commit 5 months ago
README.md 16de05ec43 added include and test dirs for c and cpp projects, updated README. 2 months ago
boil.1 b65c3c8142 added new info into readme and manpage 2 months ago
boil.sh 16de05ec43 added include and test dirs for c and cpp projects, updated README. 2 months ago
makefile 82c947a03d fixed man install path 1 month ago

README.md

logo

License

Motivation

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
MyNewProj/
├── clang_complete
├── .git
├── .gitignore
├── include
├── LICENSE.md
├── makefile
├── MyNewProj.1
├── README.md
└── tests

3 directories, 6 files

Dependencies

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

Installation

Simply run:

make deps
sudo make install

# to uninstall
sudo make uninstall

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

Usage

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

Notes

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.