Compartiendo experiencias - Crear Addon BFW3. (Parte 1) por Carlos David Rincón V. se encuentra bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 3.0 Unported.
Permisos que vayan más allá de lo cubierto por esta licencia pueden solicitarse aquí
Puede encontrar una copia de este documento aquí
Bangladesh birds by joiseyshowaa
Hola todos,
Hoy decidí armar este post para compartir con ustedes lo mucho que aprendí durante la creación de mis primeros 2 addons, espero que más compañeros se animen a compartir su experiencia y conocimiento al respecto, y que de esta forma, podamos lograr algo más amplio e interesante para luego publicarlo en la sección tutoriales y finalmente en la wiki.
Aprovecho este hilo para agradecer nuevamente a Fabiosammy, Daniel, Bruno, Jhonfw, Blackbyte, a una buena parte del staff y a aquellas personas que en este momento olvido nombrar, pero que saben que siempre les estaré agradecido, ya que directa o indirectamente siempre han compartido su conocimiento y es gracias a ellos que aprendí lo que hoy es mi deseo compartir con todos ustedes.
░░░░No tengas miedo de dar lo mejor de ti en las pequeñas cosas.
░░░░Cada vez que logras algo te vuelves mas fuerte.
░░░░Si haces pequeñas cosas bien,
░░░░cuando tengas que hacer algo grande sera muy facil.
░░░░[i]Dale Carnegie[/i]
A continuación describo los pasos a seguir para el desarrollo de un addon usando bash scripting, luego crearemos su respectiva interfaz para el webadmin.
Ingredientes:
- Un editor de texto: Usen el que más les guste, personalmente recomiendo:
░░░░░░░░░░░░░░░░░░░░░░░░░░░
Notepad++ (Windows)░░░Geany (GNU/Linux)░░░Komodo (GNU/Linux-Windows)
Geany es el que uso actualmente, también tiene una versión para Windows). - Un BrazilFW3: Preferiblemente virtualizado y corriendo en la misma máquina en que van a desarrollar sus addons, la idea es ir haciendo pruebas, viendo el avance y ver como todo va encajando. Recomiendo vmware player: Windows | GNU/Linux (archivo .bundle)
Para Windows: - WinSCP
- Putty
- sftp-net-drive
Para GNU/Linux:
Para enviar un archivo al BFW- Código: Selecionar todos
scp archivo_a_copiar root@ip_del_bfw:/_directorio
- Código: Selecionar todos
ssh root@ip_del_bfw
- Conceptos y comandos básicos de GNU/Linux, estar familiarizado con la consola.
- Ganas de buscar, leer e intentar. Una buena dosis de paciencia y perseverancia no están de más.
Una pequeñisima lista de comandos útiles:
- ls -> Muestra o lista el contenido de un directorio si utilizas la opción ls -a te muestra mas información de los archivos y directorios
- pwd -> Te muestra el directorio donde te encuentras actualmente
- cd ruta_directorio -> Te lleva a ruta_directorio
- cd .. -> sube un nivel en el directorio.
- mkdir nombre_directorio_nuevo -> Crea una nueva carpeta
- rm nombre_archivo -> Borrar archivo (Hay que tener especial cuidado con este comando)
- rmdir nombre_directorio -> Borrar directorio si está vacío (Hay que tener especial cuidado con este comando)
- cp ruta_origen ruta_destino -> Copia un archivo de un lugar origen a un lugar destino.
- mv ruta_origen ruta_destino -> Mueve un archivo de un lugar origen a un lugar destino. También se utiliza para cambiar el nombre a un archivo ejemplo: mv nombre_viejo nombre_nuevo.
- clear -> Limpia la ventana del terminal
- touch nombre_archivo -> Crea un archivo vacío con nombre_archivo como nombre
- ps -a -> Muestra todos los procesos visibles que están corriendo en el sistema.
- chmod -> Cambia los permisos* de un archivo o directorio.
Preparación:
Para simplificar las cosas, decidí dividir el “proceso” en partes:
- Breve introducción al bash scripting:
- El script principal
- Archivo de configuración del script
- Script de inicio /etc/init.d/00#-nombre_servicio
- La interfaz para el webadmin: menu y archivo.cgi
- Los archivos de idioma para el webadmin
- Empaquetado del addon
- Archivos .info
Breve script de introducción:
Los script para bash son archivos de texto, con permisos de ejecución (chmod +x) y que su contenido inicia con el encabezado (shebang) #!/bin/sh, el resto de contenído serán los comandos, procesos y sentencias que deberán ser ejecutadas.
En el siguiente ejemplo se crea un archivo bash directamente en el BFW3 y sin usar ningún editor externo. Para ello vamos a usar el comando “edit” disponible en el BrazilFW3:
- Código: Selecionar todos
touch hola.sh #creamos el archivo hola.sh
edit hola.sh
- Código: Selecionar todos
#!/bin/sh
var_hora=$(date +%T) #ejecuta el comando date +%T, el cual corresponde a la hora y guarda el dato en la variable llamada “var_hora”
echo "Hola Mundo"
echo "Son las $var_hora"
echo "Hasta pronto!"
- Código: Selecionar todos
chmod +x hola.sh
- File:
Hola Mundo
Son las 21:01:56
Hasta pronto!
También se puede hacer lo mismo usando directamente $(date +%T):
- Código: Selecionar todos
#!/bin/sh
echo "Hola Mundo"
echo "Son las $(date +%T)"
echo "Hasta pronto!"
- Código: Selecionar todos
#!/bin/sh
echo "Hola Mundo"
date +"Son las %T"
echo "Hasta pronto!"
Intentaré mejorar y continuar desarrollando este hilo mínimo una vez por semana.
Abrazos,
Lelouch
P.S.: Comentarios sobre este assunto, favor postar neste tópico => http://www.brazilfw.com.br/forum/viewtopic.php?f=78&t=83427#p292418
.