configurationengine/source/plugins/common/ConeContentPlugin/contentplugin/contentml.py
changeset 5 d2c80f5cab53
parent 3 e7e0ae78773e
equal deleted inserted replaced
4:0951727b8815 5:d2c80f5cab53
   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))