diff options
author | ramon <ramongomez@us.es> | 2014-10-06 09:45:16 +0000 |
---|---|---|
committer | ramon <ramongomez@us.es> | 2014-10-06 09:45:16 +0000 |
commit | 365a3ca843691fdc9646d6ffb7778dec64659773 (patch) | |
tree | 732133e98f9b0afd0e34721b6e71193b0a0bd395 /client | |
parent | 512c692dec30c08e1ce967de592198816bbe0f00 (diff) |
#541: Incluir 2 nuevas funciones en librería {{{PostConf}}} para ejecutar scripts en el inicio de Mac OS:
- {{{ogInstallLaunchDaemon}}}: crea configuración del servicio,
- {{{ogAddToLaunchDaemon}}}: añade comandos al script de inicio.
git-svn-id: https://opengnsys.es/svn/branches/version1.0@4399 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'client')
-rwxr-xr-x | client/engine/PostConf.lib | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/client/engine/PostConf.lib b/client/engine/PostConf.lib index 24fb00d8..a2617670 100755 --- a/client/engine/PostConf.lib +++ b/client/engine/PostConf.lib @@ -258,6 +258,110 @@ EOF } +### PRUEBAS. + +#/** +# ogInstallLaunchDaemon int_ndisk int_nfilesys str_filename +#@brief Instala archivo que se ejecutará en el arranque de Mac OS. +#@param int_ndisk nº de orden del disco +#@param int_nfilesys nº de orden del sistema de archivos +#@param str_filename nombre del script +#return (nada) +#@exception OG_ERR_FORMAT Formato incorrecto. +#@exception OG_ERR_NOTFOUND Fichero o directorio no encontrado. +#@npte Crea ficheros de configuración /Library/LaunchDaemon/es.opengnsys.Script.plist. +#@version 1.0.6 - Primera versión para OpenGnSys. +#@author Ramon Gomez, ETSII Universidad de Sevilla +#@date 2014-10-06 +#*/ ## +function ogInstallLaunchDaemon () +{ +# Variables locales. +local LAUNCHDIR SCRIPTDIR +# Si se solicita, mostrar ayuda. +if [ "$*" == "help" ]; then + ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk int_filesys str_scriptname" \ + "$FUNCNAME 1 2 postconf" + return +fi + +# Error si no se reciben 3 parámetros. +[ $# == 3 ] || ogRaiseError $OG_ERR_FORMAT || return $? +# Comprobar directorios. +LAUNCHDIR=$(ogGetPath $1 $2 /Library/LaunchDaemons) +[ -n "$LAUNCHDIR" ] || ogRaiseError $OG_ERR_NOTFOUND "$1 $2 /Library/LaunchDaemons" || return $? +SCRIPTDIR=$(ogGetPath $1 $2 /usr/share) +[ -n "$SCRIPTDIR" ] || ogRaiseError $OG_ERR_NOTFOUND "$1 $2 /usr/share" || return $? + +# Crear fichero de configuración del servicio de arranque. +cat << EOT $LAUNCHDIR/es.opengnsys.$3.plist +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> + <dict> + <key>Label</key> + <string>es.opengnsys.$3</string> + <key>ProgramArguments</key> + <array> + <string>$SCRIPTDIR/$3.sh</string> + </array> + <key>RunAtLoad</key> + <true/> + <key>StandardOutPath</key> + <string>/var/log/$3.log</string> + <key>StandardErrorPath</key> + <string>/var/log/$3.err</string> + <true/> + </dict> +</plist> +EOT + +# Crear un fichero de script vacío. +rm -f $SCRIPTDIR/$3.sh +touch $SCRIPTDIR/$3.sh +chmod +x $SCRIPTDIR/$3.sh +} + + +### PRUEBAS. + +#/** +# ogAddToLaunchDaemon int_ndisk int_nfilesys str_filename str_commands +#@brief Añade comandos al script creado por ogInstalLaunchDaemon. +#@param int_ndisk nº de orden del disco +#@param int_nfilesys nº de orden del sistema de archivos +#@param str_filename nombre del script (siempre se guardará en /usr/share para que sea visible por el sistema +#@param str_commands comando o comandos que se añadiran al fichero +#return (nada) +#@exception OG_ERR_FORMAT Formato incorrecto. +#@exception OG_ERR_NOTFOUND Fichero o directorio no encontrado. +#@version 1.0.6 - Primera versión para OpenGnSys. +#@author Ramon Gomez, ETSII Universidad de Sevilla +#@date 2014-10-06 +#*/ ## +function ogAddToLaunchDaemon () +{ +# Variables locales. +local SCRIPTFILE +# Si se solicita, mostrar ayuda. +if [ "$*" == "help" ]; then + ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk int_filesys str_scriptname" \ + "$FUNCNAME 1 2 postconf \"diskutil enableJournal disk0s2\"" + return +fi + +# Error si no se reciben 4 parámetros. +[ $# == 4 ] || ogRaiseError $OG_ERR_FORMAT || return $? +# Comprobar que existe el fichero de comandos. +SCRIPTFILE=$(ogGetPath $1 $2 "/usr/share/$3.sh") +[ -n "$SCRIPTFILE" ] || ogRaiseError $OG_ERR_NOTFOUND "$1 $2 /usr/share/$3" || return $? + +# Concatenamos el comando en el fichero de comandos +cat >> "$SCRIPTFILE" << EOT +$4 +EOT +} + + #/** # ogInstallLinuxClient int_ndisk int_filesys #@brief Instala el cliente OpenGnSys para sistemas operativos GNU/Linux. |