116 except OSError as ex: |
116 except OSError as ex: |
117 # file exists ? |
117 # file exists ? |
118 import errno |
118 import errno |
119 if ex.errno != errno.EEXIST: |
119 if ex.errno != errno.EEXIST: |
120 raise |
120 raise |
|
121 else: |
|
122 if verbose: |
|
123 print('created %s directory' % to_dir) |
121 for dirpath, dirnames, filenames in os.walk(from_dir): |
124 for dirpath, dirnames, filenames in os.walk(from_dir): |
122 for norecurs in blacklist: |
125 for norecurs in blacklist: |
123 try: |
126 try: |
124 dirnames.remove(norecurs) |
127 dirnames.remove(norecurs) |
125 except ValueError: |
128 except ValueError: |
126 pass |
129 pass |
|
130 else: |
|
131 if verbose: |
|
132 print('not recursing in %s' % join(dirpath, norecurs)) |
127 for dirname in dirnames: |
133 for dirname in dirnames: |
128 dest = join(to_dir, dirname) |
134 dest = join(to_dir, dirname) |
129 if not exists(dest): |
135 if not exists(dest): |
|
136 if verbose: |
|
137 print('creating %s directory' % dest) |
130 os.mkdir(dest) |
138 os.mkdir(dest) |
131 for filename in filenames: |
139 for filename in filenames: |
132 # don't include binary files |
140 # don't include binary files |
133 src = join(dirpath, filename) |
141 src = join(dirpath, filename) |
134 dest = to_dir + src[len(from_dir):] |
142 dest = to_dir + src[len(from_dir):] |
136 continue |
144 continue |
137 if filename[-1] == '~': |
145 if filename[-1] == '~': |
138 continue |
146 continue |
139 if exists(dest): |
147 if exists(dest): |
140 os.remove(dest) |
148 os.remove(dest) |
|
149 if verbose: |
|
150 print('copying %s to %s' % (src, dest)) |
141 shutil.copy2(src, dest) |
151 shutil.copy2(src, dest) |
142 |
152 |
143 |
153 |
144 class MyInstallLib(install_lib.install_lib): |
154 class MyInstallLib(install_lib.install_lib): |
145 """extend install_lib command to handle package __init__.py and |
155 """extend install_lib command to handle package __init__.py and |
151 # create Products.__init__.py if needed |
161 # create Products.__init__.py if needed |
152 # manually install included directories if any |
162 # manually install included directories if any |
153 if include_dirs: |
163 if include_dirs: |
154 for directory in include_dirs: |
164 for directory in include_dirs: |
155 dest = join(self.install_dir, modname, directory) |
165 dest = join(self.install_dir, modname, directory) |
156 export(directory, dest, verbose=False) |
166 export(directory, dest, verbose=self.verbose) |
157 |
167 |
158 # write required share/cubicweb/cubes/__init__.py |
168 # write required share/cubicweb/cubes/__init__.py |
159 class MyInstallData(install_data.install_data): |
169 class MyInstallData(install_data.install_data): |
160 """A class That manages data files installation""" |
170 """A class That manages data files installation""" |
161 def run(self): |
171 def run(self): |