示例#1
0
    def __get_managed_files_dpkg(self):
        """
        Get a list of all system files, belonging to the Debian package manager.
        """
        dirs = set()
        links = set()
        files = set()

        for pkg_name in salt.utils.stringutils.to_str(
            self._syscall("dpkg-query", None, None, "-Wf", "${binary:Package}\\n")[0]
        ).split(os.linesep):
            pkg_name = pkg_name.strip()
            if not pkg_name:
                continue
            for resource in salt.utils.stringutils.to_str(
                self._syscall("dpkg", None, None, "-L", pkg_name)[0]
            ).split(os.linesep):
                resource = resource.strip()
                if not resource or resource in ["/", "./", "."]:
                    continue
                if os.path.isdir(resource):
                    dirs.add(resource)
                elif os.path.islink(resource):
                    links.add(resource)
                elif os.path.isfile(resource):
                    files.add(resource)

        return sorted(files), sorted(dirs), sorted(links)
示例#2
0
    def __get_managed_files_rpm(self):
        '''
        Get a list of all system files, belonging to the RedHat package manager.
        '''
        dirs = set()
        links = set()
        files = set()

        for line in salt.utils.stringutils.to_str(self._syscall("rpm", None, None, '-qlav')[0]).split(os.linesep):
            line = line.strip()
            if not line:
                continue
            line = line.replace("\t", " ").split(" ")
            if line[0][0] == "d":
                dirs.add(line[-1])
            elif line[0][0] == "l":
                links.add(line[-1])
            elif line[0][0] == "-":
                files.add(line[-1])

        return sorted(files), sorted(dirs), sorted(links)