#!/usr/bin/python3
# Scirpt de ejemplo para almacenear en fichero temporal el listado de software.
# Nota: se usa como base para el programa de recogida de listado de software de OpenGnsys Admin.
# Formato:  listSoftwareInfo [-r] ndisk npart
#		-r   listado reducido (sin parches de Windows)

import os
import sys
import re
import argparse

import ogGlobals
import SystemLib
import InventoryLib
import NetLib

prog = os.path.basename (sys.argv[0])

def main (disk, par, reduced):
    ip = NetLib.ogGetIpAddress()
    softfile = f'{ogGlobals.OGLOG}/soft-{ip}-{disk}-{par}'
    software_list = InventoryLib.ogListSoftware (disk, par)

    if reduced:
        software_list = [line for line in software_list if not re.search (r'(KB[0-9]{6})', line)]

    with open (softfile, 'w') as f:
        for line in software_list:
            f.write (f'{line}\n')

    print (softfile)

if __name__ == '__main__':
    parser = argparse.ArgumentParser (add_help=False)
    parser.add_argument ('-r', '--reduced', action='store_true', default=False)
    parser.add_argument ('disk')
    parser.add_argument ('par')
    args = parser.parse_args()
    main (args.disk, args.par, args.reduced)
