project-start is a highly configurable command line utility
allowing you to easily start new projects in all kinds of
programming languages, such as C, C++, and Python.
This project uses GNU Make to build and install all necessary files.
To install the recommended version of the CLI, all you need to do is run the following commands:
git clone --branch v1.1.2 git@github.com:Bard-Gaming/project-start.git
cd project-start
make installTip
Once installation is complete, you may run
make fclean to delete the files that were
created during the install process, or you
can simply delete the cloned repository.
To install a version of the CLI with debug symbols enabled, you may
prepend the install rule with debug, as follows:
make debug installTo view the CLI’s usage and options, you may simply run
project-start --helpSome of the available options are as follows:
| Option | Description |
--language | Choose the project’s programming language (default: C) |
--git | Initializes a git repository when creating the |
--remote | Specifies the remote that should be used for the git repository. This implies --git |
By default, the command’s config can be found at ~~/.config/epitech-project-start/~.
The config is structured as follows:
<config root>/
|-- variables.cfg
|-- templates/
|-- common/
| |-- <file name>.template
|-- <programming language>/
|-- <file name>.template
Important
Only files ending in .template will get
added to new projects. Directories are not
affected by this.
Template files (i.e. files ending in .template) can
contain variables in the following format: {{VAR_NAME}}.
These template variables will get replaced by their values when a new project is created.
Note
File and directory names can also include
{{variables}} in their names. Do note
that files using variables still need to
have the .template extension to be included
in the new project (e.g. {{author}}-diary.txt.template).
The variables that are available by default are as follows:
| Name | Description |
{{name}} | Project name, as specified by the NAME argument |
{{display_name}} | Project’s display name, as specified by the DISPLAY_NAME argument (or NAME if not specified) |
{{author}} | The name of the user running the command |
{{year}} | The current year |
{{time}} | The current time, in the following format: Wed Dec 31 17:31:13 2025 |
Tip
You may write the variable’s name in all UPPERCASE letters.
This will yield the variable’s value in uppercase, e.g.
for {{name}} = bob, {{NAME}} will be BOB.
If {{NAME}} is already defined, the value of {{NAME}}
will be preferred over the uppercase version of {{name}}.
Variable names that contain an uppercase character
(such as {{Name}}) are not elligible for uppercase
equivalents, meaning {{NAME}} will count as undefined.
However, you may define your own, custom variables by creating a
variables.cfg file in the project starter config.
