rap/doc/es/CONVENCIONES.1
2020-06-10 20:54:57 -03:00

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>.