Example #1
0
 def domain_file(self):
     domain_basenames = [
         "domain.pddl", self.problem[:4] + "domain.pddl",
         self.problem[:3] + "-domain.pddl", "domain_" + self.problem
     ]
     domain_dir = os.path.join(BENCHMARKS_DIR, self.domain)
     return tools.find_file(domain_basenames, domain_dir)
 def domain_file(self):
     domain_basenames = ["domain.pddl",
                         self.problem[:4] + "domain.pddl",
                         self.problem[:3] + "-domain.pddl",
                         "domain_" + self.problem]
     domain_dir = os.path.join(BENCHMARKS_DIR, self.domain)
     return tools.find_file(domain_basenames, domain_dir)
Example #3
0
 def __init__(self, USAF, year = 2010):
     basefile = "NSRDB_StationData_%s0101_%s1231_%s.csv" % (year, year, USAF)
     filename = tools.find_file(basefile, PATH)
     self.USAFinfo = geo.stationInfo(USAF)
     self.tz = int(self.USAFinfo['TZ'])
     self.place = (float(self.USAFinfo['Latitude']),float(self.USAFinfo['Longitude']))
     self.csvfile = None
     try:
         self.csvfile = open(filename)
     except:
         print "File not found"
     self.tmy_data = csv.DictReader(self.csvfile)
Example #4
0
    def apply_patches(self):
        """
        Apply patches to the component's source code.
        """
        cmd = "patch -N -p1 --verbose < {f}"
        # Search a .patch file and apply it
        pattern = "{n}*.patch".format(n=self.component_data_dict["package_name"])
        patch_filename = tools.find_file(self.component_data_dict["sources_directory"], pattern)

        if patch_filename is not None:
            script_filename = os.path.join(self.component_data_dict["extracted_directory"],
                                           "patch.sh")
            # Generate 'patch.sh' script
            self.copy_script_header(script_filename)
            cmd = cmd.format(f=patch_filename)
            tools.add_text_to_file(script_filename, cmd)
            self.run_script(script_filename,
                            run_directory=self.component_data_dict["extracted_directory"])
Example #5
0
    def extract_source_code(self):
        """
        Find and extract source tarball for the component.
        """
        # We look for a tar file
        pattern = "{n}*.tar.*".format(n=self.component_data_dict["package_name"])

        # Use 'package_version' in pattern if it is not None
        if self.component_data_dict["version"] is not None:
            pattern = "{n}*{v}*.tar.*".format(n=self.component_data_dict["package_name"],
                                              v=self.component_data_dict["version"])

        source_code_filename = tools.find_file(self.component_data_dict["sources_directory"],
                                               pattern)

        # Try a second run if 'source_code_filename' is None using only name as pattern.
        if source_code_filename is None:
            pattern = "{n}*.tar.*".format(n=self.component_data_dict["package_name"])
            source_code_filename = tools.find_file(self.component_data_dict["sources_directory"],
                                                   pattern)

        # Try to find a zip file in case the tar file was not found
        if source_code_filename is None:
            pattern = "{n}*.zip*".format(n=self.component_data_dict["package_name"])

            # Use 'package_version' in pattern if it is not None
            if self.component_data_dict["version"] is not None:
                pattern = "{n}*{v}*.zip*".format(n=self.component_data_dict["package_name"],
                                                  v=self.component_data_dict["version"])

            source_code_filename = tools.find_file(self.component_data_dict["sources_directory"],
                                                   pattern)

            # Try a second run if 'source_code_filename' is None using only name as pattern.
            if source_code_filename is None:
                pattern = "{n}*.zip*".format(n=self.component_data_dict["package_name"])
                source_code_filename = tools.find_file(
                    self.component_data_dict["sources_directory"],
                    pattern
                )

        # Give error if None
        if source_code_filename is None:
            msg = "Can't find source code file for '{n}' with pattern: '{p}'"
            msg = msg.format(n=self.component_data_dict["name"], p=pattern)
            printer.error(msg)

        # Extract
        tools.extract(source_code_filename)

        # We get the name of the extracted directory
        pattern = "{n}*".format(n=self.component_data_dict["package_name"])

        # Use 'package_version' in pattern if it is not None
        if self.component_data_dict["version"] is not None:
            pattern = "{n}*{v}*".format(n=self.component_data_dict["package_name"],
                                        v=self.component_data_dict["version"])

        # Find directory using pattern
        self.component_data_dict["extracted_directory"] = tools.find_directory(
            self.component_data_dict["sources_directory"],
            pattern)

        # Try a second run if 'extracted_directory' is None using only name as pattern.
        # If found, get the realpath
        if self.component_data_dict["extracted_directory"] is None:
            pattern = "{n}*".format(n=self.component_data_dict["package_name"])
            self.component_data_dict["extracted_directory"] = tools.find_directory(
                self.component_data_dict["sources_directory"],
                pattern
            )
        else:
            self.component_data_dict["extracted_directory"] = os.path.realpath(
                self.component_data_dict["extracted_directory"]
            )

        # Fail if not found 'extracted_directroy'
        if self.component_data_dict["extracted_directory"] is None:
            msg = "Can't find extracted directory for '{n}' with pattern: '{p}'"
            msg = msg.format(n=self.component_data_dict["name"], p=pattern)
            printer.error(msg)

        # Generate build_dir if necessary.
        if self.component_data_dict["require_build_dir"] is True:
            # Generate and save 'build_directory' path
            value = os.path.realpath(
                os.path.join(
                    self.component_data_dict["extracted_directory"],
                    self.build_directory_name
                )
            )
            tools.add_to_dictionary(self.component_data_dict,
                                    "build_directory_path",
                                    value,
                                    concat=False)

            # Create directory
            tools.create_directory(self.component_data_dict["build_directory_path"])
        else:
            # If not, build component into the extracted directory
            tools.add_to_dictionary(self.component_data_dict,
                                    "build_directory_path",
                                    self.component_data_dict["extracted_directory"],
                                    concat=False)

        # Set directory owner if we are building the 'toolchain'
        if self.component_data_dict["builder_name"] == "toolchain":
            tools.set_recursive_owner_and_group(self.component_data_dict["extracted_directory"],
                                                self.component_data_dict["run_as_username"])
Example #6
0
 def test_find_file(self):
     """
     .- check we can find files
     """
     self.assertIsNotNone(tools.find_file(os.getcwd(), self.dummy_file))