Beispiel #1
0
    def get_installed_packets(self) -> List[Package]:
        shell_command("system_profiler SPApplicationsDataType")
        file = codecs.open(Environment().path_streams + "/stdout.txt",
                           mode="rb",
                           encoding=Environment().codec_type,
                           errors="replace")
        packages = []

        file.readline()
        file.readline()
        line = file.readline()

        while line:
            name = line.replace(" ", "").replace("\n", "").replace(":", "")
            version = ""
            file.readline()  # whitespace
            sub_line = file.readline()
            while sub_line:
                if "Version:" in sub_line:
                    version = sub_line.replace(" ",
                                               "").replace("\n", "").replace(
                                                   "Version:", "")
                    sub_line = file.readline()
                elif ("Obtained from:" in sub_line
                      or "Last Modified:" in sub_line or "Kind:" in sub_line
                      or "64-Bit (Intel):" in sub_line
                      or "Signed by:" in sub_line or "Location:" in sub_line
                      or "Get Info String:" in sub_line):
                    sub_line = file.readline()
                else:
                    sub_line = None
            line = file.readline()
            packages.append(Package(name, version.replace(",", ".")))
        return packages
Beispiel #2
0
 def disable(self):
     command = "iptables-save > " + Environment(
     ).path_firewall_resources + "/last.rules"
     shell_command(command)
     act_cwd = os.getcwd()
     cd(Environment().path_embedded_scripts)
     result = exec_command("./down_iptables.sh")
     cd(act_cwd)
     return result
Beispiel #3
0
 def get_installed_packets(self) -> List[Package]:
     packages = []
     shell_command("pacman -Q")
     stdout_file = codecs.open(Environment().path_streams + "/stdout.txt",
                               mode="rb",
                               encoding=Environment().codec_type,
                               errors="replace")
     line = stdout_file.readline()
     while line:
         splitted = line.replace("\n", "").split(" ")
         packages.append(Package(splitted[0], splitted[1]))
         line = stdout_file.readline()
     stdout_file.close()
     return packages
Beispiel #4
0
 def install_package(self,
                     queue: Queue,
                     name: str,
                     queue_type="",
                     tree_space=""):
     cwd = os.getcwd()
     installed = True
     try:
         queue.put(queue_type + name + tree_space +
                   " will be installed on system")
         os.chdir(self.path_download_files)
         url, filename, commands = self.applications[name]
         if name in self.dependencies.keys():
             # first we need to install dependencies
             queue.put(queue_type + tree_space + "dependencies: " +
                       str(self.dependencies[name]))
             for dependency in self.dependencies[name]:
                 self.install_package(queue,
                                      dependency,
                                      queue_type=queue_type,
                                      tree_space=tree_space + "------")
         requirement = requests.get(url)
         with open(filename, "wb") as f:
             f.write(requirement.content)
         for meta_command in commands:
             command = meta_command[0]
             description = meta_command[1]
             queue.put(queue_type + tree_space + description)
             if command.startswith("cd"):
                 os.chdir(command.split("$")[1])
             else:
                 shell_command(command)
             stdout, stderr = communicate()
             if stderr.replace("\n", "").replace(" ", "") != "":
                 queue.put(queue_type + tree_space + stderr)
         # restart()
     except Exception as e:
         warnings.warn(str(e))
         queue.put(queue_type + tree_space + "fail")
         installed = False
     os.chdir(cwd)
     if installed:
         queue.put(queue_type + "installed successfully")
     return
Beispiel #5
0
 def get_installed_packets(self) -> List[Package]:
     packages = []
     shell_command("rpm -qa")
     stdout_file = codecs.open(Environment().path_streams + "/stdout.txt",
                               mode="rb",
                               encoding=Environment().codec_type,
                               errors="replace")
     line = stdout_file.readline()
     while line:
         full_name = line
         splitted = line.split("-")
         line = stdout_file.readline()
         name = "-".join(splitted[0:(len(splitted) - 2)])
         version_splitted = "-".join(splitted[(len(splitted) -
                                               2):len(splitted)]).split(".")
         version = ".".join(version_splitted[0:len(version_splitted) - 1])
         packages.append(Package(name, version, full_name))
     stdout_file.close()
     return packages
Beispiel #6
0
 def get_installed_packets(self) -> List[Package]:
     packages = []
     shell_command("dpkg -l")
     stdout_file = codecs.open(Environment().path_streams + "/stdout.txt",
                               mode="rb",
                               encoding=Environment().codec_type,
                               errors="replace")
     # first five lines are information only
     stdout_file.readline()
     stdout_file.readline()
     stdout_file.readline()
     stdout_file.readline()
     stdout_file.readline()
     line = stdout_file.readline()
     while line:
         splitted = line.split()
         name = splitted[1]
         version = splitted[2]
         full_name = name + " " + version + " " + splitted[3]
         packages.append(Package(name, version, full_name))
         line = stdout_file.readline()
     stdout_file.close()
     return packages
Beispiel #7
0
def generate_scripts(path_scripts):
    with open(path_scripts + "/down_iptables.sh", "w") as f:
        f.write(DOWN_IPTABLES_SCRIPT)
    shell_command("chmod +x " + path_scripts + "/down_iptables.sh")