180 lines
5.0 KiB
Groff
180 lines
5.0 KiB
Groff
.\" Automatically generated by Pandoc 2.9.2
|
|
.\"
|
|
.TH "CONVENCIONES" "2" "2013" "Manual de RAP" "rap"
|
|
.hy
|
|
.SH NOMBRE
|
|
.PP
|
|
Notas para desarrolladorxs de RAP :)
|
|
.SH SINOPSIS
|
|
.TP
|
|
lib/
|
|
herramientas
|
|
.TP
|
|
lib/exec/
|
|
comandos
|
|
.TP
|
|
skel/
|
|
archivos base para tinc
|
|
.TP
|
|
skel/scripts/
|
|
directorio de scripts/hooks
|
|
.TP
|
|
doc/
|
|
documentaci\['o]n
|
|
.TP
|
|
hosts/
|
|
archivos de nodos
|
|
.TP
|
|
nodos/
|
|
nodos propios
|
|
.TP
|
|
locale/
|
|
traducciones
|
|
.SH DESCRIPCION
|
|
.SS D\['o]nde van los scripts
|
|
.PP
|
|
El script \f[I]rap\f[R] autodescubre los comandos siguiendo la
|
|
convenci\['o]n \f[I]lib/exec/el-script\f[R].
|
|
Adem\['a]s configura algunas variables de entorno que los scripts pueden
|
|
usar para saber en qu\['e] red est\['a]n trabajando.
|
|
.PP
|
|
Los scripts pueden estar en cualquier lenguaje de programaci\['o]n
|
|
mientras sepan leer esas variables de entorno.
|
|
.SS Variables de entorno
|
|
.PP
|
|
Estas son las variables de entorno que \f[I]rap\f[R] exporta para el
|
|
resto de los comandos.
|
|
.TP
|
|
TINC
|
|
Ubicaci\['o]n del directorio del nodo, por defecto
|
|
\f[I]/etc/tinc/rap\f[R].
|
|
.TP
|
|
NETWORK
|
|
Nombre de la red, por defecto \f[I]rap\f[R].
|
|
.TP
|
|
RAP
|
|
Path completo de \f[I]rap\f[R].
|
|
.TP
|
|
RAP_DIR
|
|
Path completo del directorio de trabajo, por defecto el directorio base
|
|
de \f[I]RAP\f[R]
|
|
.TP
|
|
RAP_LIBDIR
|
|
Path completo del directorio de comandos.
|
|
.TP
|
|
RAP_HOSTS
|
|
Path completo del directorio de hosts.
|
|
.TP
|
|
KEYSIZE
|
|
Tama\[~n]o por defecto de las llaves.
|
|
.TP
|
|
TINCD_FLAGS
|
|
Flags para el demonio \f[I]tincd\f[R].
|
|
.TP
|
|
PORT
|
|
Puerto por defecto
|
|
.TP
|
|
sudo
|
|
Usar esta variable delante de cualquier comando que deba correr con
|
|
privilegios de root, ej: \f[I]${sudo} rsync\f[R].
|
|
Requiere \f[I]\[lq]root=true\[rq]\f[R] al principio del script.
|
|
.SS D\['o]nde va la documentaci\['o]n
|
|
.PP
|
|
La documentaci\['o]n lleva el nombre completo del script:
|
|
\f[I]doc/idioma/tuscript.markdown\f[R].
|
|
La funci\['o]n \f[I]help()\f[R] en \f[I]lib/msg\f[R] lo lleva como
|
|
argumento para mostrar la ayuda.
|
|
.PP
|
|
Adem\['a]s, toma la variable de entorno \f[I]PAGER\f[R] para paginar la
|
|
salida, por defecto se usa \f[I]less\f[R].
|
|
.SS Flags y par\['a]metros
|
|
.PP
|
|
\f[I]rap comando\f[R] -flags nodolocal parametros extra
|
|
.PP
|
|
Seguido de \f[I]rap\f[R] viene el comando, al que se le pasan en orden
|
|
las opciones (con sus valores).
|
|
El primer par\['a]metro siempre tiene que ser el nodo local en el que se
|
|
realiza la acci\['o]n.
|
|
Luego vienen los par\['a]metros extra (nombres de otros nodos, por
|
|
ejemplo).
|
|
.SS Funciones comunes
|
|
.PP
|
|
En el archivo \f[I]lib/common\f[R] se almacenan las funciones de uso
|
|
com\['u]n entre todos los comandos.
|
|
Se la puede incluir en un script a\[~n]adiendo la l\['i]nea
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
\&. \[dq]${RAP_LIBDIR}\[dq]/common
|
|
\f[R]
|
|
.fi
|
|
.PP
|
|
al principio del script.
|
|
.PP
|
|
\f[B]Nota:\f[R] Agregar \f[I]root=true\f[R] antes de common para poder
|
|
correr funciones de root.
|
|
.SS Variables
|
|
.IP \[bu] 2
|
|
self: nombre del script.
|
|
Usado para obtener el nombre del script.
|
|
Ejemplo: \f[I]help $self\f[R] llama a la ayuda del script actual.
|
|
.SS Funciones
|
|
.IP \[bu] 2
|
|
\f[I]add_to_file()\f[R]: Agrega una l\['i]nea al final de un archivo.
|
|
Uso: \f[I]add_to_file archivo \[lq]Texto a agregar\[rq]\f[R]
|
|
.IP \[bu] 2
|
|
\f[I]requires()\f[R]: Indica que el script necesita que un programa se
|
|
encuentre en el PATH.
|
|
Se recomienda cuando el script llama a un programa que puede no
|
|
encontrarse en una instalaci\['o]n est\['a]ndar.
|
|
Uso: \f[I]requires avahi-publish rsync\f[R]
|
|
.IP \[bu] 2
|
|
\f[I]get_node_dir()\f[R]: Encuentra el directorio de un nodo
|
|
pas\['a]ndole el nombre del nodo como argumento.
|
|
\f[I]node_dir=\[lq]$(get_node_dir ${node})\[rq]\f[R]
|
|
.IP \[bu] 2
|
|
\f[I]get_node_file()\f[R]: Encuentra el archivo de host de un nodo
|
|
dentro del directorio del nodo.
|
|
\f[I]node_file=\[lq]$(get_node_file ${node})\[rq]\f[R]
|
|
.IP \[bu] 2
|
|
\f[I]get_node_name()\f[R]: Limpia el nombre del nodo de caracteres
|
|
inv\['a]lidos
|
|
.IP \[bu] 2
|
|
\f[I]get_host_file()\f[R]: Obtiene el archivo del nodo en $RAP_HOSTS
|
|
.SS Mensajes
|
|
.PP
|
|
En \f[I]lib/msg\f[R] se encuentran las funciones b\['a]sicas para
|
|
imprimir mensajes en la salida de errores est\['a]ndar.
|
|
Esto es para que no sean procesados como la salida est\['a]ndar de los
|
|
scripts, que se reservan para poder enviar la informaci\['o]n a una
|
|
tuber\['i]a.
|
|
.PP
|
|
No es necesario incluirla ya que se llama desde \f[I]lib/common\f[R].
|
|
.PP
|
|
Todas las funciones tienen soporte para traducciones utilizando gettext,
|
|
por lo que los mensajes que se completan con variables deben seguir el
|
|
formato de \f[I]printf\f[R]: \f[I]%s\f[R] para reemplazar por cadenas,
|
|
\f[I]%d\f[R] para n\['u]meros enteros, etc.
|
|
.PP
|
|
Por ejemplo: \f[I]msg \[lq]Procesando el nodo %s\&...\[rq]
|
|
\[lq]$node\[rq]\f[R]
|
|
.IP \[bu] 2
|
|
\f[I]msg()\f[R]: Informaci\['o]n
|
|
.IP \[bu] 2
|
|
\f[I]error()\f[R]: Mensaje de error
|
|
.IP \[bu] 2
|
|
\f[I]warning()\f[R]: Alerta
|
|
.IP \[bu] 2
|
|
\f[I]fatal_error()\f[R]: Imprime un mensaje de error y termina el
|
|
programa inmediatamente
|
|
.IP \[bu] 2
|
|
\f[I]tip()\f[R]: Recomendaciones, por ejemplo, cual comando correr a
|
|
continuaci\['o]n.
|
|
.SS Los comandos
|
|
.PP
|
|
La mayoria de los comandos solo configuran, luego hay que enviar los
|
|
cambios a directorio de instalaci\['o]n con el comando \f[I]rap init
|
|
install\f[R].
|
|
.SH AUTHORS
|
|
fauno <fauno@endefensadelsl.org>.
|