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
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
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
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
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
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
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")