diff options
author | ramon <ramongomez@us.es> | 2014-09-04 10:15:55 +0000 |
---|---|---|
committer | ramon <ramongomez@us.es> | 2014-09-04 10:15:55 +0000 |
commit | 045fd2da7faf1290c9c4d57846715e5b32063881 (patch) | |
tree | c0db0eaa75694bbc30c4e93fe6f1805af5591146 /client/engine/Inventory.lib | |
parent | 477ba422f09ceb3a1e7b3fe8aae5725ab3934ccc (diff) |
#645: Función {{{ogGetOsVersion}}} detecta algunos sistemas GNU/Linux con EFI que usan ficheros similares a Mac OS.
git-svn-id: https://opengnsys.es/svn/branches/version1.0@4376 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'client/engine/Inventory.lib')
-rwxr-xr-x | client/engine/Inventory.lib | 68 |
1 files changed, 35 insertions, 33 deletions
diff --git a/client/engine/Inventory.lib b/client/engine/Inventory.lib index feee9d76..e9768d7d 100755 --- a/client/engine/Inventory.lib +++ b/client/engine/Inventory.lib @@ -29,6 +29,26 @@ fi #/** +# ogGetOsType int_ndisk int_npartition +#@brief Devuelve el tipo del sistema operativo instalado. +#@param int_ndisk nº de orden del disco +#@param int_npartition nº de orden de la partición +#@return OSType - Tipo de sistema operativo. +#@see ogGetOsVersion +#*/ ## +function ogGetOsType () +{ +# Si se solicita, mostrar ayuda. +if [ "$*" == "help" ]; then + ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk int_npartition" \ + "$FUNCNAME 1 2 => Linux" + return +fi +ogGetOsVersion "$@" | cut -sf1 -d: +} + + +#/** # ogGetOsVersion int_ndisk int_nfilesys #@brief Devuelve la versión del sistema operativo instalado en un sistema de archivos. #@param int_ndisk nº de orden del disco @@ -126,19 +146,22 @@ fi # Para MacOS: detectar kernel y completar con fichero plist de información del sistema. if [ -z "$VERSION" ]; then TYPE="MacOS" - # Kernel de Mac OS. + # Kernel de Mac OS (no debe ser fichero de texto). FILE="$MNTDIR/mach_kernel" - [ -n "$(file -b $FILE | grep 'Mach-O')" ] && VERSION="Mac OS" - [ -n "$(file -b $FILE | grep 'Mach-O 64-bit')" ] && IS64BIT="$MSG_64BIT" - # Datos de configuración de versión de Mac OS. - FILE="$MNTDIR/System/Library/CoreServices/SystemVersion.plist" - [ -r $FILE ] && VERSION=$(awk -F"[<>]" ' - /ProductName/ {getline;s=$3} - /ProductVersion/ {getline;v=$3} - END {print s,v}' $FILE) - # Datos de recuperación de Mac OS. - FILE="$MNTDIR/com.apple.recovery.boot" - [ -r $FILE -a -n "$VERSION" ] && VERSION="$VERSION recovery" + if [ -z "$(file -b $FILE | grep 'text')" ]; then + # Obtener tipo de kernel. + [ -n "$(file -b $FILE | grep 'Mach-O')" ] && VERSION="Mac OS" + [ -n "$(file -b $FILE | grep 'Mach-O 64-bit')" ] && IS64BIT="$MSG_64BIT" + # Datos de configuración de versión de Mac OS. + FILE="$MNTDIR/System/Library/CoreServices/SystemVersion.plist" + [ -r $FILE ] && VERSION=$(awk -F"[<>]" ' + /ProductName/ {getline;s=$3} + /ProductVersion/ {getline;v=$3} + END {print s,v}' $FILE) + # Datos de recuperación de Mac OS. + FILE="$MNTDIR/com.apple.recovery.boot" + [ -r $FILE -a -n "$VERSION" ] && VERSION="$VERSION recovery" + fi fi # Para FreeBSD: obtener datos del Kernel. ### TODO Revisar solución. @@ -175,27 +198,6 @@ return 0 #/** -# ogGetOsType int_ndisk int_npartition -#@brief Devuelve el tipo del sistema operativo instalado. -#@param int_ndisk nº de orden del disco -#@param int_npartition nº de orden de la partición -#@return OSType - Tipo de sistema operativo. -#@note OSType = { Android, BSD, Linux, MacOS, Windows } -#@see ogGetOsVersion -#*/ ## -function ogGetOsType () -{ -# Si se solicita, mostrar ayuda. -if [ "$*" == "help" ]; then - ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk int_npartition" \ - "$FUNCNAME 1 2 => Linux" - return -fi -ogGetOsVersion "$@" | cut -sf1 -d: -} - - -#/** # ogListHardwareInfo #@brief Lista el inventario de hardware de la máquina cliente. #@return TipoDispositivo:Modelo (por determinar) |