A scaffolding python tool without dependencies
Features :
Use case :
You can directly erect scaffolding without installing nothing on your system.
Example, if you want erect Python package scaffolding scaffolding then Paste that at a Terminal prompt :
$ python -c "$(curl -fsSL https://raw.github.com/harobed/echafaudage/master/echafaudage.py)" -s https://github.com/harobed/python_package_scaffolding/archive/master.zip /tmp/my_new_project
Next echafaudage ask some questions :
mail : contact@stephane-klein.info
version : 0.1.0
package_name : my-project
author : Stéphane Klein
Now your project is in /tmp/my_new_project/
$ ls /tmp/my_new_project/
bootstrap.py devel-requirements.txt my_project requirements.txt setup.py tests unittest.cfg
$ pip install https://github.com/harobed/echafaudage/archive/master.zip
And use echafaudage like this :
$ echafaudage -s https://github.com/harobed/python_package_scaffolding/archive/master.zip /tmp/my_new_project
You can also directly set some variable in command line :
$ echafaudage -s https://github.com/harobed/python_package_scaffolding/archive/master.zip /tmp/my_new_project --vars project_name=my-project,version=1.0
$ bin/echafaudage --help
Usage: echafaudage [options] -s <scaffolding> [<TARGET>]
Arguments:
TARGET where scaffolding will be created, by default it is "." (current directory)
Options:
-s, --scaffolding=<scaffolding> The scaffolding to use, can be a directory path,
an archive or archive url.
--vars=<variables> Custom variables, e.g --vars hello=world,sky=blue
-h --help Show this screen.
-v, --verbose
--version
Example:
$ echafaudage -s /path/to/directory/
or
$ echafaudage -s my_scaffolding.tar.gz
or
$ echafaudage -s http://example.com/my_scaffolding.tar.gz
First, you can see Python package scaffolding scaffolding example.
In this repository :
.
├── README.rst
├── bootstrap.py
├── devel-requirements.txt
├── requirements.txt
├── scaffolding.json <= scaffolding configuration file
├── setup.py.tmpl <= template file
├── tests
│ └── test_basic.py
├── unittest.cfg
└── {{package_name_underscore}} <= this folder is renamed with "package_name_underscore" variable value
└── __init__.py.tmpl <= template file
{{package_name_underscore}}/__init__.py.tmpl content :
__version__ = '{{version}}'
The scaffolding.json (json format) configure the variable list :
{
"variables": {
"package_name": null,
"author": null,
"mail": null,
"package_name_underscore": {
"lambda": "vars['package_name'].replace('-', '_')"
},
"version": {
"default": "0.1.0"
}
},
"ignores": [
"README.rst"
]
}
If you want more powered scaffolding tool, you can look at mr.bob.