Eigenes Modul
Verfasst: Freitag 4. Oktober 2019, 16:53
Hallo ich habe ein eigenes Modul erstellt.
Das Modul kann auf Linux Betriebsystemen ausgeführt werden die Debian Pakete unterstützen.
Es bietet funktionen zum anzeigen der infos über ein Paket.
Ich bin offen für verbesserungen und neue Ideen.
Ich habe hierhttps://1drv.ms/u/s!AhT7GNW97XSLnnDN9Yq ... d?e=7qfYlt einen Link für das vollständige Paket.
Der Code selber habe ich noch hier runterkopiert.
Liebe Grüsse Fire Spike.
Das Modul kann auf Linux Betriebsystemen ausgeführt werden die Debian Pakete unterstützen.
Es bietet funktionen zum anzeigen der infos über ein Paket.
Ich bin offen für verbesserungen und neue Ideen.
Ich habe hierhttps://1drv.ms/u/s!AhT7GNW97XSLnnDN9Yq ... d?e=7qfYlt einen Link für das vollständige Paket.
Der Code selber habe ich noch hier runterkopiert.
Liebe Grüsse Fire Spike.
Code: Alles auswählen
import linecache
import json
from pkg_resources import resource_filename
def read_json():
jsonpath = resource_filename(__name__, "little_RAM_mode.json")
with open(jsonpath, "r") as jsonfile:
return json.load(jsonfile)
def package_exists(package, line_number=False):
with open("/var/lib/dpkg/status") as infofile:
if line_number:
line_number = 0
for line in infofile:
line_number += 1
if line == 'Package: ' + package + '\n':
return [True, line_number]
else:
pass
return [False]
else:
for line in infofile:
if line == 'Package: ' + package + '\n':
return True
else:
pass
return False
def package_values(package, value):
loop = True
counter = 0
OK = package_exists(package, True)
if OK[0] == True:
line_number = OK[1]
if value == "Description" or value == "Conffiles":
while loop == True:
counter += 1
line = linecache.getline("/var/lib/dpkg/status", line_number + counter)
h = line.find(value)
if line.find("Package: ") == 0:
raise NameError("The value are not exist")
if h == 0:
return_value = line.split(": ")
while loop == True:
counter += 1
line = linecache.getline("/var/lib/dpkg/status", line_number + counter)
if line.find("Package: ") == 0 or line.find("Homepage: ") == 0 or line.find("Description: ") == 0:
return_value[:-2]
del return_value[0]
a = ""
for i in return_value:
a += i
return_value = a
return return_value[:-2]
else:
return_value.append(line)
else:
while loop == True:
counter += 1
line = linecache.getline("/var/lib/dpkg/status", line_number + counter)
h = line.find(value)
if line.find("Package: ") == 0:
raise NameError("The value are not exist")
if h == 0:
return_value = line.split(": ")
return_value = return_value[1].split("\n")
return return_value[0]
else:
raise NameError("The package are not exists")
def package_list():
packages_list = []
with open("/var/lib/dpkg/status") as infofile:
for line in infofile:
if line.find("Package: ") == 0:
akt_package = line.split(": ")[1]
akt_package = akt_package.split("\n")
packages_list.append(akt_package[0])
else:
pass
return packages_list
def count_packages(little_RAM_mode=""):
if little_RAM_mode == "":
little_RAM_mode = read_json()
if little_RAM_mode:
counter_packages = 0
with open("/var/lib/dpkg/status") as infofile:
for line in infofile:
if line.find("Package: ") == 0:
counter_packages += 1
else:
pass
return counter_packages
else:
return(len(package_list()))
def set_little_RAM_mode(value):
if value == True or False:
with open("little_RAM_mode.json", "w") as jsonfile:
jsonfile.write(json.dumps(value, indent=4))
else:
raise ValueError("enter False or True")