200 Then apply the possible filters. |
200 Then apply the possible filters. |
201 """ |
201 """ |
202 if input_dir == None: |
202 if input_dir == None: |
203 self.logger.warning("Input dir is none!") |
203 self.logger.warning("Input dir is none!") |
204 |
204 |
|
205 files = utils.flatten_list(files) |
|
206 self.logger.info("Files: %s" % files) |
205 |
207 |
206 if files != []: |
208 if files != []: |
207 for f in files: |
209 for f in files: |
208 if f in contentfiles: |
210 if f in contentfiles: |
209 pass |
211 pass |
210 elif f not in contentfiles: |
212 elif f not in contentfiles: |
211 self.logger.info("File: %s not found in content" % f) |
213 self.logger.info("File: %s not found in content" % f) |
212 |
214 |
213 |
215 |
214 if files != []: |
216 if files != []: |
215 filesfunc = lambda x: x.lower() in [f.lower() for f in files] |
217 contentfiles = files |
216 contentfiles = filter(filesfunc, contentfiles) |
|
217 if include_filter != "": |
218 if include_filter != "": |
218 filter_regexp = include_filter |
219 filter_regexp = include_filter |
219 filter_regexp = filter_regexp.replace('.','\.') |
220 filter_regexp = filter_regexp.replace('.','\.') |
220 filter_regexp = filter_regexp.replace('*','.*') |
221 filter_regexp = filter_regexp.replace('*','.*') |
221 self.logger.info("filtering with include %s" % filter_regexp) |
222 self.logger.info("filtering with include %s" % filter_regexp) |
224 filter_regexp = exclude_filter |
225 filter_regexp = exclude_filter |
225 filter_regexp = filter_regexp.replace('.','\.') |
226 filter_regexp = filter_regexp.replace('.','\.') |
226 filter_regexp = filter_regexp.replace('*','.*') |
227 filter_regexp = filter_regexp.replace('*','.*') |
227 self.logger.info("filtering with exclude %s" % filter_regexp) |
228 self.logger.info("filtering with exclude %s" % filter_regexp) |
228 contentfiles = utils.resourceref.neg_filter_resources(contentfiles,filter_regexp) |
229 contentfiles = utils.resourceref.neg_filter_resources(contentfiles,filter_regexp) |
229 for outfile in contentfiles: |
230 for (index, outfile) in enumerate(contentfiles): |
230 sourcefile = "" |
231 sourcefile = "" |
231 targetfile = "" |
232 targetfile = "" |
232 |
233 |
233 # For the startswith() check, make sure that input dir has a trailing slash |
234 # For the startswith() check, make sure that input dir has a trailing slash |
234 if input_dir and input_dir[-1] != '/': input_dir_check = input_dir + '/' |
235 if input_dir and input_dir[-1] != '/': input_dir_check = input_dir + '/' |
235 else: input_dir_check = input_dir |
236 else: input_dir_check = input_dir |
236 |
237 |
237 if input_dir != None and (input_dir == outfile or outfile.startswith(input_dir_check)): |
238 if input_dir != None and (input_dir == outfile or outfile.startswith(input_dir_check)): |
238 sourcefile = datacontainer.get_value(outfile) |
239 try: |
239 if flatten: |
240 sourcefile = datacontainer.get_value(outfile) |
240 targetfile = utils.resourceref.join_refs([output_dir, os.path.basename(outfile)]) |
241 except KeyError: |
241 targetfile = utils.resourceref.norm(targetfile) |
242 self.logger.info("Input file not found: %s" % outfile) |
242 else: |
243 else: |
243 targetfile = utils.resourceref.replace_dir(outfile,input_dir,output_dir) |
244 if flatten: |
|
245 targetfile = utils.resourceref.join_refs([output_dir, os.path.basename(outfile)]) |
|
246 targetfile = utils.resourceref.norm(targetfile) |
|
247 else: |
|
248 targetfile = utils.resourceref.replace_dir(outfile,input_dir,output_dir) |
244 elif external: |
249 elif external: |
245 #External inputs |
250 #External inputs |
246 sourcefile = utils.resourceref.norm(datacontainer.get_value(outfile)) |
251 try: |
247 |
252 sourcefile = utils.resourceref.norm(datacontainer.get_value(outfile)) |
248 if flatten: |
253 except KeyError: |
249 targetfile = utils.resourceref.join_refs([output_dir, os.path.basename(sourcefile)]) |
254 self.logger.info("Input file not found: %s" % outfile) |
250 targetfile = utils.resourceref.norm(targetfile) |
|
251 else: |
255 else: |
252 fulldir = os.path.abspath(os.path.join(self.configuration.get_project().get_storage().get_path(),input_dir)) |
256 if flatten: |
253 targetfile = utils.resourceref.replace_dir(sourcefile,fulldir,output_dir) |
257 targetfile = utils.resourceref.join_refs([output_dir, os.path.basename(sourcefile)]) |
254 |
258 targetfile = utils.resourceref.norm(targetfile) |
255 if output_file: |
259 else: |
|
260 fulldir = os.path.abspath(os.path.join(self.configuration.get_project().get_storage().get_path(),input_dir)) |
|
261 targetfile = utils.resourceref.replace_dir(sourcefile,fulldir,output_dir) |
|
262 |
|
263 if isinstance(output_file,list): |
|
264 #Renaming output if defined |
|
265 targetfile = targetfile.replace(os.path.basename(targetfile), output_file[index]) |
|
266 elif output_file: |
256 #Renaming output if defined |
267 #Renaming output if defined |
257 targetfile = targetfile.replace(os.path.basename(targetfile), output_file) |
268 targetfile = targetfile.replace(os.path.basename(targetfile), output_file) |
258 |
269 |
259 if sourcefile and targetfile: |
270 if sourcefile and targetfile: |
260 copylist.append((sourcefile,targetfile,external)) |
271 copylist.append((sourcefile,targetfile,external)) |