Skip to content

Bard-Gaming/project-start

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Starter

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.

blob/help.png

Installing

This project uses GNU Make to build and install all necessary files.

Express install

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 install

Tip

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.

Debug install

To install a version of the CLI with debug symbols enabled, you may prepend the install rule with debug, as follows:

make debug install

Using the CLI

To view the CLI’s usage and options, you may simply run

project-start --help

Some of the available options are as follows:

OptionDescription
--languageChoose the project’s programming language (default: C)
--gitInitializes a git repository when creating the
--remoteSpecifies the remote that should be used for the git repository. This implies --git

Customizing

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.

Templates

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).

Variables

The variables that are available by default are as follows:

NameDescription
{{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.

About

Project Starter Command Line Utility

Topics

Resources

License

Stars

Watchers

Forks

Contributors