`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
File details
Details for the file mrproject-0.2.0.tar.gz
.
File metadata
- Download URL: mrproject-0.2.0.tar.gz
- Upload date:
- Size: 36.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.10.12 Linux/6.6.10-76060610-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d6646dc9d4c1de331f896aaee8b71567961407b6d086a479f01a8620d11abfc |
|
MD5 | 444bec09ccbd73565cd089420c5c32cd |
|
BLAKE2b-256 | 6c609bbf3b793de2618356d0bca59b5bcd1a4106819d3155f119dfaaf6c00458 |
File details
Details for the file mrproject-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: mrproject-0.2.0-py3-none-any.whl
- Upload date:
- Size: 40.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.10.12 Linux/6.6.10-76060610-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d5e56a9df49b7a67c78b8152d9bb71708b5ae08827d7b1c2d8dcedf151a34b3 |
|
MD5 | b65098155dbb2f235be70f71b12415f7 |
|
BLAKE2b-256 | 2bb862d224e51452dbe6710142f02efdb1c833134e01991851ca2cf4cd298b65 |