From 79718100f6808e2a5d528f53acc3ea760780a473 Mon Sep 17 00:00:00 2001 From: Natalia Serrano Date: Thu, 13 Feb 2025 13:24:47 +0100 Subject: [PATCH] refs #1502 add ogListPrimaryPartitions --- client/lib/engine/bin/DiskLib.py | 34 ++++++++----------- .../shared/functions/ogListPrimaryPartitions | 22 ++++++++++++ 2 files changed, 36 insertions(+), 20 deletions(-) create mode 100755 client/shared/functions/ogListPrimaryPartitions diff --git a/client/lib/engine/bin/DiskLib.py b/client/lib/engine/bin/DiskLib.py index 617efc4..0faee2a 100755 --- a/client/lib/engine/bin/DiskLib.py +++ b/client/lib/engine/bin/DiskLib.py @@ -1096,28 +1096,22 @@ def ogListPartitions (disk): #@param int_ndisk nº de orden del disco #@see ogListPartitions #*/ ## -def ogListPrimaryPartitions(*args): - # Variables locales - PTTYPE = None - PARTS = None +def ogListPrimaryPartitions (disk): + PTTYPE = ogGetPartitionTableType (disk) + if not PTTYPE: return None - # Si se solicita, mostrar ayuda. - if len(args) == 1 and args[0] == "help": - SystemLib.ogHelp('ogListPrimaryPartitions', 'ogListPrimaryPartitions int_ndisk', 'ogListPrimaryPartitions 1 => NTFS:10000000 EXT3:5000000 EXTENDED:1000000') - return + PARTS = ogListPartitions (disk) + if not PARTS: return None - PTTYPE = ogGetPartitionTableType(args[0]) - if PTTYPE is None: - return - PARTS = ogListPartitions(*args) - if PARTS is None: - return - - if PTTYPE == "GPT": - print(PARTS.rstrip(" EMPTY:0")) - elif PTTYPE == "MSDOS": - print(PARTS.split(" ")[0:4]) - return + if 'GPT' == PTTYPE: + res = [] + for idx in range (len(PARTS),0,-1): + item = PARTS[idx-1] + if 0==len(res) and 'EMPTY:0' == item: continue + res.insert (0, item) + return res + elif 'MSDOS' == PTTYPE: + return PARTS[0:4] #/** diff --git a/client/shared/functions/ogListPrimaryPartitions b/client/shared/functions/ogListPrimaryPartitions new file mode 100755 index 0000000..045289f --- /dev/null +++ b/client/shared/functions/ogListPrimaryPartitions @@ -0,0 +1,22 @@ +#!/usr/bin/python3 + +import sys +import argparse +from SystemLib import ogHelp +from DiskLib import ogListPrimaryPartitions + +parser = argparse.ArgumentParser (add_help=False) +parser.add_argument ('disk') + +if 2 == len (sys.argv) and 'help' == sys.argv[1]: + #parser.print_help() sale en inglés aunque la locale indique otra cosa + ogHelp ('ogListPrimaryPartitions', 'ogListPrimaryPartitions int_ndisk', ['ogListPrimaryPartitions 1']) + sys.exit (0) + +args = parser.parse_args() +ret = ogListPrimaryPartitions (args.disk) + +if ret is not None: + if ret == True: sys.exit (0) + elif ret == False: sys.exit (1) + else: print (' '.join (ret))