67 lines
2.1 KiB
Python
67 lines
2.1 KiB
Python
import os
|
|
import subprocess
|
|
|
|
#!/usr/bin/env python3
|
|
|
|
def main():
|
|
os.environ["DEBUG"] = "no"
|
|
|
|
ser = ogGetSerialNumber()
|
|
cfg = ""
|
|
disks = len(ogDiskToDev().split())
|
|
|
|
for dsk in range(1, disks + 1):
|
|
particiones = ogGetPartitionsNumber(dsk) or 0
|
|
ptt = ogGetPartitionTableType(dsk)
|
|
ptt_map = {"MSDOS": 1, "GPT": 2, "LVM": 3, "ZPOOL": 4}
|
|
ptt = ptt_map.get(ptt, 0)
|
|
|
|
cfg += f"{dsk}:0:{ptt}:::{ogGetDiskSize(dsk)}:0;"
|
|
|
|
for par in range(1, particiones + 1):
|
|
cod = ogGetPartitionId(dsk, par)
|
|
fsi = getFsType(dsk, par) or "EMPTY"
|
|
tam = ogGetPartitionSize(dsk, par) or "0"
|
|
soi = ""
|
|
uso = 0
|
|
|
|
if fsi not in ["", "EMPTY", "LINUX-SWAP", "LINUX-LVM", "ZVOL"]:
|
|
if ogMount(dsk, par):
|
|
soi = getOsVersion(dsk, par).split(":")[1]
|
|
if not soi:
|
|
soi = getOsVersion(dsk, par).split(":")[1]
|
|
if not soi and fsi not in ["EMPTY", "CACHE"]:
|
|
soi = "DATA"
|
|
uso = int(subprocess.getoutput(f"df {ogGetMountPoint(dsk, par)} | awk '{{getline; printf \"%d\",$5}}'") or 0)
|
|
|
|
cfg += f"{dsk}:{par}:{cod}:{fsi}:{soi}:{tam}:{uso};"
|
|
|
|
if not cfg:
|
|
cfg = "1:0:0:::0;"
|
|
|
|
cfgfile = "/tmp/getconfig"
|
|
with open(cfgfile, "w") as f:
|
|
f.write(f"{ser + ';' if ser else ''}{cfg}")
|
|
|
|
generateMenuDefault()
|
|
|
|
with open(cfgfile, "r") as f:
|
|
data = f.read()
|
|
|
|
for line in data.split(";"):
|
|
if line:
|
|
parts = line.split(":")
|
|
if len(parts) == 1:
|
|
print(f"ser={parts[0]}")
|
|
else:
|
|
print(f"disk={parts[0]}\tpar={parts[1]}\tcpt={parts[2]}\tfsi={parts[3]}\tsoi={parts[4]}\ttam={parts[5]}\tuso={parts[6]}")
|
|
|
|
for root, dirs, files in os.walk("/mnt"):
|
|
for file in files:
|
|
if file.startswith("ogboot."):
|
|
os.remove(os.path.join(root, file))
|
|
|
|
os.environ.pop("DEBUG", None)
|
|
|
|
if __name__ == "__main__":
|
|
main() |