django-admin-tools / admin_tools / menu / management / commands / custommenu.py

import os
from django.core.management.base import BaseCommand, CommandError
from django.template.loader import render_to_string


DEFAULT_FILE = 'menu.py'

class Command(BaseCommand):
    help = ('Creates a template file containing the base code to get you '
            'started with your custom menu')
    args = ['file']

    def handle(self, file=None, **options):
        project_name = os.path.basename(os.getcwd())
        dst = file is not None and file or DEFAULT_FILE
        if os.path.exists(dst):
            raise CommandError('Error: file "%s" already exists' % dst)
        open(dst, 'w').write(render_to_string('admin_tools/menu/menu.txt', {
            'project': project_name,
            'file': os.path.basename(dst).split('.')[0]
        }))
        self.stdout.write('"%s" written.' % os.path.join(dst))
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.