def search_db_files(self, _dst_filename_func):
        """
        EXAMPLE RESULTS
        /Users/<someuser>/Library/Application Support/Google/Chrome//Profile 1/History
        /Users/<someuser>/Library/Application Support/Google/Chrome//Default/History
        /Users/<someuser>/Library/Application Support/Google/Chrome//Profile 3/History
        /Users/<someuser>/Library/Application Support/Google/Chrome//System Profile/History
        /Users/<someuser>/Library/Application Support/Google/Chrome//Guest Profile/History
        :param _dst_filename_func:
        :return:
        """
        found_db_files = FileUtils.search_files(self.search_basedir,
                                                HISTORY_FILE_NAME)
        self.available_profiles = [
            self.get_profile_from_file_path(file, to_lower=True)
            for file in found_db_files
        ]
        if not found_db_files:
            raise ValueError("Cannot find any {} under directory: {}".format(
                GOOGLE_CHROME_HIST_DB_TEXT, self.search_basedir))
        LOG.info("Found DB files: \n%s", "\n".join(found_db_files))
        if self.options.profile != ALL_PROFILES and self.options.profile.lower(
        ) not in self.available_profiles:
            raise ValueError("No {} found for profile: {}. "
                             "Available profiles: {}".format(
                                 GOOGLE_CHROME_HIST_DB_TEXT,
                                 self.options.profile,
                                 self.available_profiles))

        # Make a copy of each DB file as they might be locked by Chrome if running
        msg = "Copying {}.".format(GOOGLE_CHROME_HIST_DB_TEXT) + "\n {} -> {}"
        copied_db_files = [
            FileUtils.copy_file_to_dir(db,
                                       self.db_copies_dir,
                                       _dst_filename_func,
                                       msg_template=msg)
            for db in found_db_files
        ]
        file_sizes = FileUtils.get_formatted_file_sizes_in_dir(
            self.db_copies_dir,
            since=DateUtils.get_current_time_minus(minutes=1))
        LOG.info("Sizes of %s:\n%s", GOOGLE_CHROME_HIST_DB_TEXT, file_sizes)
        self.options.db_files.extend(copied_db_files)
 def find_cdsw_runner_script(parent_dir):
     results = FileUtils.search_files(parent_dir, CDSW_RUNNER_PY)
     if not results:
         raise ValueError(f"Expected to find file: {CDSW_RUNNER_PY}")
     return results[0]