`mrproject` - make projects from templates
Project description
mrproject
- make projects from templates
This project is home cooked software. But of course, you are free to use it as you wish. You might even like it.
Features:
- Generate projects from templates:
mrproject new --template <template> <project_name>
- Templates are normal python projects and don't use any templating language. That means you can actually use/test your template while you add new features.
- The default templates are build with a high degree of automation in mind.
- List existing templates:
mrproject list
- That's it 🤷
Usage
mrproject help
usage: mrproject command
Commands:
new Create a new project from a template with `project_name`.
list List all available templates.
help Print usage documentation on a specific command.
Usage: mrproject new
mrproject help new
usage: mrproject new [-t|--template] [-n|--no-interaction] project_name
Create a new project from a template with `project_name`.
Example usage:
mrproject new my_new_project
mrproject new my_new_project --template my_fancy_template
Options:
--template
The name or path of the template to use.
Use `mrproject list` to list all available templates.
--no-interaction
Don't ask for user input but accept defaults.
When calling mrproject new
- the user config file is read (
~/.config/mrproject/config.toml
), - the user is asked to specify/overwrite all variables defined in
mrproject_template.toml
, - the template project is copied to the current working directory,
- every occurrence of
MRPROJECT_*
is replaced with the corresponding value (including the folder and file names), - and that's it. This approach is very limited (on purpose) and very simple.
Usage: mrproject list
mrproject help list
usage: mrproject list
List all available templates.
Template
Currently mrproject
comes with the following templates:
What Is A Template?
A template
is a just a folder that with these files:
mrproject_template.toml # contains the variables that are substituted
README.md # README desribing the features of the template
MRPROJECT_PROJECT_NAME/ # the acual project that is copied
... # anything you want really :)
tests/ # optional tests for your template
...
The file mrproject_template.toml
MUST contain the following fields:
[mrproject.template.substitutions]
MRPROJECT_AUTHOR = "your name"
MRPROJECT_EMAIL = "your@email.com"
Some additional fields are added by mrproject
automatically:
MRPROJECT_CURRENT_YEAR
- the current year
The fields MUST start with MRPROJECT_
and MUST be upper case.
Create Your Own Template
First, read the section above.
Then, you can create your own template by putting it in the templates
folder under:
~/.local/share/mrproject/templates/
.
~/.local/share/mrproject/templates/
my_template/
README.md
mrproject_template.toml
MRPROJECT_PROJECT_NAME/
...
tests/
...
User Config
The user config file is located at ~/.config/mrproject/config.toml
.
Currently you can only specify default substitutions:
[mrproject.template.substitutions]
MRPROJECT_AUTHOR = "your name"
MRPROJECT_EMAIL = "your@email.com"
Why mrproject
?
There are many project template generators out there, and many of them are great and more feature rich than this one.
But I want to have a simple one where I can actually use/test the project template as I add new features. This is achieved by not using any templating language, but reserved keywords.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for mrproject-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d5e56a9df49b7a67c78b8152d9bb71708b5ae08827d7b1c2d8dcedf151a34b3 |
|
MD5 | b65098155dbb2f235be70f71b12415f7 |
|
BLAKE2b-256 | 2bb862d224e51452dbe6710142f02efdb1c833134e01991851ca2cf4cd298b65 |