35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
from django.core.management.base import LabelCommand, CommandError
|
|
from django.db.models import get_apps
|
|
import os, os.path as osp
|
|
import shutil
|
|
|
|
class Command(LabelCommand):
|
|
args = ''
|
|
label = 'directory'
|
|
|
|
def handle(self, *labels, **options):
|
|
if not labels or len(labels) > 1:
|
|
raise CommandError('Enter one directory name.')
|
|
|
|
label = labels[0]
|
|
final_dest = osp.join(os.getcwd(), label)
|
|
if osp.exists(final_dest):
|
|
raise CommandError('Directory already exists')
|
|
|
|
os.mkdir(final_dest)
|
|
|
|
apps = get_apps()
|
|
for x in apps:
|
|
app_dir = osp.dirname(x.__file__)
|
|
module = x.__name__
|
|
app = module.split('.')[-2]
|
|
|
|
if app == 'admin': continue
|
|
|
|
|
|
media_dir = osp.join(app_dir, "media", app)
|
|
if not osp.isdir(media_dir):
|
|
media_dir = osp.join(app_dir, "media")
|
|
if osp.exists(media_dir):
|
|
print "copy", media_dir, '->', osp.join(final_dest, app)
|
|
shutil.copytree(media_dir, osp.join(final_dest, app)) |