Baby Language Lab Scripts
A collection of data processing tools.
 All Classes Namespaces Files Functions Variables Pages
C:/Users/Wayne/Documents/baby-lab/bll_app/updater.py
Go to the documentation of this file.
1 import os
2 import shutil
3 
4 #no trailing slashes!
5 src_dir = 'C:/Users/Wayne/Documents/baby-lab/bll_app'
6 dest_dir = 'F:/baby-lab/bll_app'
7 
8 #these are relative to the base dir
9 omit_dirs = ['icons', 'logs']
10 omit_files = ['bll_db.db']
11 
12 def process_dir(src_dir, dest_dir):
13  src_list = os.listdir(src_dir)
14  dest_list = os.listdir(dest_dir)
15 
16  #remove files/folders that are in dest_dir, but not in src_dir
17  for item in dest_list:
18  if not item in src_list:
19  if os.path.isdir(dest_dir + '/' + item):
20  if not item in omit_dirs:
21  print 'Removing directory: %s' % (dest_dir + '/' + item)
22  shutil.rmtree(dest_dir + '/' + item)
23 
24  elif not item in omit_files:
25  print 'Removing file: %s' % (dest_dir + '/' + item)
26  os.remove(dest_dir + '/' + item)
27 
28  #add or overwrite files/folders in dest_dir using those in src_dir
29  for item in src_list:
30  if os.path.isdir(src_dir + '/' + item):
31  if not item in omit_dirs:
32  if not item in dest_list:
33  print 'Creating directory: %s' % (src_dir + '/' + item)
34  os.mkdir(dest_dir + '/' + item)
35 
36  process_dir(src_dir + '/' + item, dest_dir + '/' + item)
37 
38  elif not item in omit_files:
39  if not item.endswith('~') and not item.endswith('.pyc'):
40  print 'Copying file: %s' % (src_dir + '/' + item)
41  shutil.copyfile(src_dir + '/' + item, dest_dir + '/' + item)
42 
43 process_dir(src_dir, dest_dir)