refs #1625 add ogGrubSetTimeOut

pull/5/head
Natalia Serrano 2025-03-05 11:58:38 +01:00
parent cd81c16afb
commit 4e1a188e53
3 changed files with 80 additions and 3 deletions

View File

@ -0,0 +1,25 @@
#!/usr/bin/python3
import sys
import argparse
import ogGlobals
from SystemLib import ogHelp
from BootLib import ogBootLoaderSetTimeOut
parser = argparse.ArgumentParser (add_help=False)
parser.add_argument ('disk')
parser.add_argument ('par')
parser.add_argument ('timeout')
if 2 == len (sys.argv) and 'help' == sys.argv[1]:
#parser.print_help() sale en inglés aunque la locale indique otra cosa
ogHelp ('ogBootLoaderSetTimeOut', ogGlobals.lang.MSG_SEE+' ogGrubSetTimeOut', [])
sys.exit (0)
args = parser.parse_args()
ret = ogBootLoaderSetTimeOut (args.disk, args.par, args.timeout)
if ret is not None:
if ret == True: sys.exit (0)
elif ret == False: sys.exit (1)
else: print (ret)

View File

@ -0,0 +1,24 @@
#!/usr/bin/python3
import sys
import argparse
from SystemLib import ogHelp
from BootLib import ogGrubSetTimeOut
parser = argparse.ArgumentParser (add_help=False)
parser.add_argument ('disk')
parser.add_argument ('par')
parser.add_argument ('timeout')
if 2 == len (sys.argv) and 'help' == sys.argv[1]:
#parser.print_help() sale en inglés aunque la locale indique otra cosa
ogHelp ('ogGrubSetTimeOut', 'ogGrubSetTimeOut int_ndiskSecondStage int_partitionSecondStage int_timeout_seconds', ['ogGrubSetTimeOut 1 4 50'])
sys.exit (0)
args = parser.parse_args()
ret = ogGrubSetTimeOut (args.disk, args.par, args.timeout)
if ret is not None:
if ret == True: sys.exit (0)
elif ret == False: sys.exit (1)
else: print (ret)

View File

@ -997,22 +997,25 @@ def ogGrubOgliveDefaultEntry (disk, par):
#@exception OG_ERR_NOTFOUND Entrada de OgLive no encontrada en burg.cfg.
#*/ ##
def ogBootLoaderOgliveDefaultEntry (disk, par):
# Nombre de la función que llama a esta.
func = inspect.stack()[1][3]
# Error si no puede montar sistema de archivos.
PART = FileSystemLib.ogMount (disk, par)
if not PART: return None
# La función debe ser llamanda desde ogGrubOgliveDefaultEntry, ogBurgOgliveDefaultEntry or ogRefindOgliveDefaultEntry.
if 'ogGrubOgliveDefaultEntry' == func:
cfgfile = f'{PART}/boot/grubMBR/boot/grub/grub.cfg'
else:
SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_FORMAT, f'Use ogGrubOgliveDefaultEntry')
return None
print (f'nati cfgfile ({cfgfile})')
# Comprobamos que exista fichero de configuración
if not os.path.exists (cfgfile):
SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_NOTFOUND, cfgfile)
return None
# Detectamos cual es la entrada de ogLive
numentry = 0
with open (cfgfile, 'r') as fd:
while True:
@ -1022,7 +1025,7 @@ def ogBootLoaderOgliveDefaultEntry (disk, par):
numentry += 1
if 'OpenGnsys Live' in l: break
print (f'nati numentry ({numentry})')
# Si no existe entrada de ogLive nos salimos
if not numentry:
SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_NOTFOUND, f'menuentry OpenGnsys Live in {cfgfile}')
return None
@ -1103,6 +1106,8 @@ def ogBootLoaderOgliveDefaultEntry (disk, par):
#@brief ver ogBootLoaderSetTimeOut
#@see ogBootLoaderSetTimeOut
#*/ ##
def ogGrubSetTimeOut (disk, par, timeout):
return ogBootLoaderSetTimeOut (disk, par, timeout)
#/**
# ogBootLoaderSetTimeOut
@ -1116,6 +1121,29 @@ def ogBootLoaderOgliveDefaultEntry (disk, par):
#@exception OG_ERR_NOTFOUND Fichero de configuración no encontrado: grub.cfg burg.cfg.
#@exception OG_ERR_NOTFOUND Entrada deltema no encontrada en burg.cfg.
#*/ ##
def ogBootLoaderSetTimeOut (disk, par, timeout):
# Nombre de la función que llama a esta.
func = inspect.stack()[1][3]
# Error si no puede montar sistema de archivos.
PART = FileSystemLib.ogMount (disk, par)
if not PART: return None
# La función debe ser llamanda desde ogGrubSetTimeOut, ogBurgSetTimeOut or ogRefindSetTimeOut.
if 'ogGrubSetTimeOut' == func:
bootloader = 'grub'
bootloaderdir = 'boot/grubMBR'
cfgfile = f'{PART}/boot/grubMBR/boot/grub/grub.cfg'
else:
SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_FORMAT, f'Use ogGrubSetTimeOut')
return None
# Comprobamos que exista fichero de configuración
if not os.path.exists (cfgfile):
SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_NOTFOUND, cfgfile)
return None
# Asignamos el timeOut.
subprocess.run (['sed', '-i', f's/timeout=.*$/timeout={timeout}/g', cfgfile])
#/**