@everettblakley/create-cpp-class v2.2.0
create-cpp-class
A Node.js CLI to bootstrap the process of creating C++ classes
Prerequisites
Install
npm install -g @everettblakley/create-cpp-class
Disclaimer
This package will create files, and potentially directories, within your file system. Currently, the program will determine the files that it needs to create, and will copy over the required templates, overwriting any files that have the same name. The program will show you the files that it is going to generate, and ask if that looks right to you. It will not check if the file already exists, so be careful to not specify a class that already exists, or it will be over written.
The program will display a disclaimer before it runs, just to be sure you are aware:
DISCLAIMER
Be aware that this program will overwrite any files that match any files specified in the output. You will have an opportunity to abort before any writes occur. Please be aware of the values you use.
? Proceed with this program? (Y/n)
Usage
This CLI will create a C++ class based on parameters you pass in, combined with some user input on the command line.
Basic Usage
Without any arguments, the CLI will walk you through all the prompts, and ask what you want to name the class, and everything else.
create-cpp-class
This will ask you the following questions regarding the new class:
Do you accept the terms of the Disclaimer
The name of the class you want to create
- Some notes about class names:
- Note that spaces will be ignored on input
- Class can only contain A-Z (lowercase or uppercase), 0-9, and underscores(_)
- Any errors will display a message
- Some notes about class names:
The output directory of the header file (default is
./include
)The file extension of the header file (default is
.h
, other options are.hpp
andNone
If you want to include a source file for class implementation (default is
yes
). If so, then it will ask:- The output directory of the source fill (default is
./src
) - The file extension of the source file (default is
.cpp
, other options are.cc
and.cxx
)
- The output directory of the source fill (default is
The CLI will display the files that it is going to create based on your options, and ask you if you want to continue. (default is
yes
)
Then the CLI will process your configuration, create the files, and populate them with the relevant information!
To see the templates used for the header
and source
files, see the respective files here
Accept Defaults: --yes
(-y
)
To accept all defaults and simply run the creation script, use --yes
(or -y
)
create-cpp-class --yes
This will use all defaults (listed here), but will still ask for a class name (unless you declare a class name(#Declare class name))
Declare class name: --class-name
(-c
)
If you don't want to go through the class name prompts, you can use the --class-name
(or -c
) arg to pass it in. The class name should follow the conditions laid out in the basic usage(#Basic Usage), else you will be required to input one from the prompts.
create-cpp-class -c AwesomeClassName
This will still require you to agree to the disclaimer, and to set the appropriate header/source file and extensions, unless used with the accept defaults flag(#Accept Defaults: --yes (-y))
Exclude Source Files: --no-source
(-n
)
If you don't want to use a separate file for class implementation (i.e. have the class all contained in the header file), pass in the --no-source
(or -n
) flag and these prompts will be skipped. You will still need to to agree to the disclaimer, and set appropriate header extension and locations, unless used with the accept defaults flag(#Accept Defaults: --yes (-y))
Dry Run: --dry-run
(-d
)
If you just want to see what the CLI will produce, use the --dry-run
(or -d
) flag. This will bypass the disclaimer , but you will still need to answer the other prompts, unless used with the accept defaults flag(#Accept Defaults: --yes (-y)) . NO FILES WILL BE WRITTEN TO YOUR DISK WITH THIS COMMAND
Advanced Usage
If you don't like all the prompts, or you find that you don't need to specify the header extensions and locations every time, use the following command to get through it faster
create-cpp-class -y -c AwesomeClassName
This will create the following files:
./
| -> include/AwesomeClassName.h
| -> src/AwesomeClassName.cpp
To see what this command will output before committing to it, just run create-cpp-class -y -c AwesomeClassName -d
Defaults
The default settings define the class in a header file, with a source file (or implementation) containing class implementations. The default header file extension is .h
and the default source file extension is .cpp
, with the header being placed in a directory called include
and source being placed in a directory called src
Authors
This code was written while procrastinating an assignment by Everett Blakley
Contribution
Contributions are welcome via pull-requests to the master branch
License
This project is using the a standard MIT License