sphinx-contrib / make-ext.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys, os, re, string, shutil

no_fn_re = re.compile(r'[^a-zA-Z0-9_-]')

def die(msg):
    print msg
    sys.exit(1)

if not os.path.isdir('_template'):
    die('Please run this script from its directory.')

print 'Creating a new sphinx-contrib package'
name = raw_input('Name: ')
author = raw_input('Author name: ')
author_email = raw_input('E-mail: ')

if not name or not author:
    die('Please give name and author name.')
if no_fn_re.sub('', name) != name:
    die('Please only use alphanumerics, underscore and dash in the name.')
if os.path.exists(name):
    die('A subdirectory or file with that name already exists.')

shutil.copytree('_template', name)

fp = open('_template/setup.py', 'r')
tmp = string.Template(fp.read())
fp.close()
fp = open(os.path.join(name, 'setup.py'), 'w')
fp.write(tmp.safe_substitute(**locals()))
fp.close()

print 'Created new package in directory', name
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.