summaryrefslogtreecommitdiffstats
path: root/client/engine/Inventory.lib
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2014-09-04 10:15:55 +0000
committerramon <ramongomez@us.es>2014-09-04 10:15:55 +0000
commit045fd2da7faf1290c9c4d57846715e5b32063881 (patch)
treec0db0eaa75694bbc30c4e93fe6f1805af5591146 /client/engine/Inventory.lib
parent477ba422f09ceb3a1e7b3fe8aae5725ab3934ccc (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-xclient/engine/Inventory.lib68
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)