summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2014-10-06 09:45:16 +0000
committerramon <ramongomez@us.es>2014-10-06 09:45:16 +0000
commit365a3ca843691fdc9646d6ffb7778dec64659773 (patch)
tree732133e98f9b0afd0e34721b6e71193b0a0bd395 /client
parent512c692dec30c08e1ce967de592198816bbe0f00 (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-xclient/engine/PostConf.lib104
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.