Ticket #2557: __init__.py

File __init__.py, 1.5 KB (added by dummy@…, 17 years ago)

django/contrib/media/init.py

Line 
1from django.core.servers.basehttp import app_media_dirs
2from os import listdir, sep, mkdir
3from os.path import abspath, basename, isdir
4from shutil import copy
5
6def list_media_dirs():
7    for media_dir in app_media_dirs:
8        print media_dir
9
10def sync_media_root():
11    from django.conf import settings
12    media_file_list = []
13    media_dir_list = []
14    for media_dir in app_media_dirs:
15        files, dirs = tree(media_dir)
16        media_file_list = media_file_list + files
17        media_dir_list = media_dir_list + dirs
18    for dir in media_dir_list:
19        idx = dir.index('media')
20        rel_media_path = dir[idx+6:]
21        new_media_path = settings.MEDIA_ROOT + rel_media_path
22        if not isdir(new_media_path):
23             print "Creating %s in MEDIA_ROOT" % rel_media_path
24             mkdir(new_media_path)
25    for file in media_file_list:
26        idx = file.index('media')
27        rel_media_path = file[idx+6:]
28        new_media_path = settings.MEDIA_ROOT + rel_media_path
29        print "Syncing %s" % rel_media_path
30        copy(file, new_media_path)
31
32
33def tree(dir):
34    files_list = []
35    dirs_list = []
36    files = []
37    files = listdir(dir)
38    count = 0
39    for file in files:
40        if file == '.svn':
41            continue
42        path = dir + sep + file
43        if isdir(path):
44            dirs_list.append(abspath(path))
45            files, dirs = tree(path)
46            files_list = files_list + files
47            dirs_list = dirs_list + dirs
48        else:
49            files_list.append(abspath(path))
50    return files_list, dirs_list
Back to Top