cctm

cookie cutter template manager


License
MIT
Install
pip install cctm==0.2

Documentation

cctm

CCTM = cookie cutter template manager

project templates manager for cookiecutter

(python3 only)

quick examples

$ cctm init
$ cctm selfupdate
$ cctm install audreyr/cookiecutter-pypackage
$ cctm use audreyr/cookiecutter-pypackage

# alias
$ cctm management alias audreyr/cookiecutter-pypackage pypackage
$ cctm use pypackage

# extra_context configuration
$ cctm config --name=full_name --value=podhmo.podhmo
$ cctm use pypackage

setup

$ pip install cctm

cctm uses individual configuration file(cctm.json).

searching cctm.json

searching method is here.

first, from current working directory, searching "cctm.json" file, recuresively.

e.g. if cwd is ~/foo/bar/boo. searching below paths.

  1. ~/foo/bar/boo/cctm.json
  2. ~/foo/bar/cctm.json
  3. ~/foo/cctm.json
  4. ~/cctm.json

second, if cctm.json is not found on first process, then, using ~/.cctm/cctm.json (default path)

generating configuration file

generating configuration file via cctm init.

$ cctm init

# if generating configuration file as current working directory
$ cctm init --project=.

package information

listing package information via cctm list

$ cctm list | grep pypackage
kragniz/cookiecutter-pypackage-minimal(12) -- A minimal template for python packages
audreyr/cookiecutter-pypackage(555) -- Cookiecutter template for a Python package.
pypackage -> audreyr/cookiecutter-pypackage  # this is alias

show detail via cctm show

$ cctm show audreyr/cookiecutter-pypackage
{
  "updated_at": "2016-01-08T22:53:23Z",
  "url": "https://github.com/audreyr/cookiecutter-pypackage",
  "name": "audreyr/cookiecutter-pypackage",
  "description": "Cookiecutter template for a Python package.",
  "star": 555,
  "created_at": "2013-07-14T18:52:05Z"
}

using cookiecutter

installing cookiecutter template

installing the template via cctm install

$ cctm install chrisdev/wagtail-cookiecutter-foundation

# wagtail-cookiecutter-foundation is installed
$ cctm list --installed
audreyr/cookiecutter-pypackage
chrisdev/wagtail-cookiecutter-foundation

using cookiecutter template

using installed template via cctm use

$ cctm use chrisdev/wagtail-cookiecutter-foundation

if you are irritated by long-long-name, cctm management alias is helpful, maybe.

$ cctm management alias chrisdev/wagtail-cookiecutter-foundation mywagtail
$ cctm list --alias | grep wagtail
mywagtail -> chrisdev/wagtail-cookiecutter-foundation
$ cctm use mywagtail  # it's is also ok.

default configuration settings

if you want to set a default context, using cctm config

# show configuration
$ cctm config | jq .extra_context
{
  "name": "podhmo",
}
# edit configuration
$ cctm config --name=project_name --value=hello
# delete configuration
$ cctm config --name=project_name

extra_context attribute in config file is using as cookiecutter's extra context, so.

$ cctm use mywagtail
project_name [Wagtail Project]:  # cancel

$ cctm config --name=project_name --value=hello
$ cctm use mywagtail
project_name [hello]:

your custom repositories

if you store url in repositories of configration file, cctm recognizes as package repositoriy.

default reposotiries are here.

"repositories": [
  "https://raw.githubusercontent.com/podhmo/cctm/master/data/cookiecutter.index.json"
]

package format example

{
  "name": "chrisdev/wagtail-cookiecutter-foundation",
  "url": "https://github.com/chrisdev/wagtail-cookiecutter-foundation",
  "description": "Cookiecutter template for Wagtail CMS using Zurb Foundation 5",
  "created_at": "2015-04-13T13:36:50Z",
  "updated_at": "2016-01-04T14:53:04Z",
  "star": 23
}

if you know, github url, be able to fetch information via cctm management fetch

$ cctm management fetch chrisdev/wagtail-cookiecutter-foundation
{
  "name": "chrisdev/wagtail-cookiecutter-foundation",
  "url": "https://github.com/chrisdev/wagtail-cookiecutter-foundation",
  "description": "Cookiecutter template for Wagtail CMS using Zurb Foundation 5",
  "created_at": "2015-04-13T13:36:50Z",
  "updated_at": "2016-01-04T14:53:04Z",
  "star": 23
}

# store data at local.json
$ cctm management fetch chrisdev/wagtail-cookiecutter-foundation --save --store=./local.json

please, don't forget to call cctm selfupdate. this command synchnonizes at local data and repositoriies data.

$ cctm selfupdate