����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
import os
import subprocess
class PackageManagerError(Exception):
def __init__(self, err):
self.returncode = err.returncode
self.stdout = err.stdout.decode()
self.stderr = err.stderr.decode()
class PackageManager(object):
binary = None
kernel_name = None
kernel_dev_name = None
list_installed_cmd = None
_kernel_ver = None
@property
def kernel_ver(self):
if not self._kernel_ver:
self._kernel_ver = self._exec('uname', '-r').strip()
return self._kernel_ver
@property
def kernel_name_full(self):
return '-'.join([self.kernel_name, self.kernel_ver])
@property
def kernel_dev_name_full(self):
return '-'.join([self.kernel_dev_name, self.kernel_ver])
def _exec(self, *args):
try:
process = subprocess.run(args, stdout=subprocess.PIPE,
stderr=subprocess.PIPE, check=True)
except subprocess.CalledProcessError as err:
raise PackageManagerError(err)
return process.stdout.decode()
def install(self, *args):
return self._exec(self.binary, 'install', '-y', *args)
def install_kernel_dev(self, *args):
return self.install(self.kernel_dev_name_full, *args)
def is_package_installed(self, package):
try:
self._exec(*self.list_installed_cmd, package)
except PackageManagerError:
return False
return True
def is_kernel_dev_installed(self):
return self.is_package_installed(self.kernel_dev_name_full)
_registry = []
def register(cls):
if issubclass(cls, PackageManager) and cls is not PackageManager:
_registry.append(cls)
return cls
def detect():
for provider in _registry:
if os.path.exists(provider.binary):
return provider()
raise OSError("Can't detect package manager")
@register
class Deb(PackageManager):
binary = '/usr/bin/apt-get'
kernel_name = 'linux-image'
kernel_dev_name = 'linux-headers'
list_installed_cmd = '/usr/bin/dpkg', '--list'
@register
class Rpm(PackageManager):
binary = '/usr/bin/yum'
kernel_name = 'kernel'
kernel_plus_name = 'kernel-plus'
kernel_dev_name = '{}-devel'
list_installed_cmd = '/usr/bin/yum', 'list', 'installed'
def __init__(self):
if 'plus' in self.kernel_ver and \
self.is_package_installed(self.kernel_plus_name):
self.kernel_name = self.kernel_plus_name
self.kernel_dev_name = self.kernel_dev_name.format(self.kernel_name)
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __pycache__ | Folder | 0755 |
|
|
| backup_backends | Folder | 0755 |
|
|
| __init__.py | File | 135 B | 0644 |
|
| backup_backends_lib.py | File | 9.54 KB | 0644 |
|
| cli.py | File | 8.93 KB | 0644 |
|
| config.py | File | 347 B | 0644 |
|
| helpers.py | File | 7.52 KB | 0644 |
|
| log.py | File | 2.33 KB | 0644 |
|
| package_manager.py | File | 2.54 KB | 0644 |
|
| restore.py | File | 6.92 KB | 0644 |
|
| safe_fileops.py | File | 4.66 KB | 0644 |
|
| scan.py | File | 1.76 KB | 0644 |
|