Exemplo n.º 1
0
	def getinc_paths(self, basename, directory, quoted = 0):
		"""Return increment.______.dir paths"""
		if quoted:
			FilenameMapping.set_init_quote_vals()
			dirrp = FilenameMapping.QuotedRPath(Globals.local_connection,
												  directory)
		else: dirrp = rpath.RPath(Globals.local_connection, directory)
		incbasenames = [filename for filename in robust.listrp(dirrp)
						if filename.startswith(basename)]
		incbasenames.sort()
		incrps = map(dirrp.append, incbasenames)
		return map(lambda x: x.path,
				   filter(lambda incrp: incrp.isincfile(), incrps))
Exemplo n.º 2
0
 def getinc_paths(self, basename, directory, quoted=0):
     """Return increment.______.dir paths"""
     if quoted:
         FilenameMapping.set_init_quote_vals()
         dirrp = FilenameMapping.QuotedRPath(Globals.local_connection,
                                             directory)
     else:
         dirrp = rpath.RPath(Globals.local_connection, directory)
     incbasenames = [
         filename for filename in robust.listrp(dirrp)
         if filename.startswith(basename)
     ]
     incbasenames.sort()
     incrps = map(dirrp.append, incbasenames)
     return map(lambda x: x.path,
                filter(lambda incrp: incrp.isincfile(), incrps))
Exemplo n.º 3
0
        def find_letter(subdir):
            """
            Find a (subdir_rp, dirlist) with a letter in it, or None

            Recurse down the directory, looking for any file that has
            a letter in it.  Return the pair (rp, [list of filenames])
            where the list is of the directory containing rp.
            """
            files_list = robust.listrp(subdir)
            for filename in files_list:
                file_rp = subdir.append(filename)
                if filename != filename.swapcase():
                    return (subdir, files_list, filename)
                elif file_rp.isdir():
                    subsearch = find_letter(file_rp)
                    if subsearch:
                        return subsearch
            return None
Exemplo n.º 4
0
    def getinc_paths(self, basename, directory, quoted=0):
        """Returns a sorted list of files which starts with basename
        within a given directory."""

        if quoted:
            FilenameMapping.set_init_quote_vals()
            dirrp = FilenameMapping.QuotedRPath(Globals.local_connection,
                                                directory)
        else:
            dirrp = rpath.RPath(Globals.local_connection, directory)
        incbasenames = [
            filename for filename in robust.listrp(dirrp)
            if filename.startswith(basename)
        ]
        incbasenames.sort()
        incrps = list(map(dirrp.append, incbasenames))
        return [
            x.path for x in [incrp for incrp in incrps if incrp.isincfile()]
        ]
Exemplo n.º 5
0
    def _detect_escape_trailing_spaces_readonly(self, rp):
        """Determine if directory at rp permits filenames with trailing
        spaces or periods without writing."""

        # we check one file after the other in the given directory
        dirlist = robust.listrp(rp)
        for filename in dirlist:
            try:
                test_rp = rp.append(filename)
            except OSError:
                continue  # file is not fit for tests
            if not test_rp.lstat():
                continue  # file is not fit for tests
            if filename.endswith(b".") or filename.endswith(b" "):
                self.escape_trailing_spaces = False
                return
            # we test only periods and assume the same result for spaces
            period = filename + b'.'
            if period in dirlist:
                self.escape_trailing_spaces = False
                return
            try:
                period_rp = rp.append(period)
            except OSError:
                continue  # file is not fit for tests
            if period_rp.lstat():
                self.escape_trailing_spaces = True
                return

        # no file could be found to do any test
        log.Log(
            "Could not determine if source directory {sd} permits "
            "trailing spaces or periods in filenames because we can't "
            "find any files with trailing dot/period. "
            "It will be treated as permitting such files, but none will "
            "exist if it doesn't, so it doesn't really matter and is "
            "harmless".format(sd=rp), log.INFO)
        self.escape_trailing_spaces = False