Compilador de plugins

Publicado por btocarmona, Septiembre 22, 2013, 07:03:01 PM

Tema anterior - Siguiente tema

btocarmona

Amigos quiero compartir con ustedes este script que realice para agilizar el compilado de los plugins.

Captura


Habia una pregunta en el foro la cual era porque los plugin que venian en raptor pesaban solo 50 kb y los que compilabamos unos 124 kb, bueno con esta forma de compilado obtendremos el mismo tamaño que los que vienen en raptor no me pregunten porque jeje
 
Saludos

Les dejo adjunto nuevamente, cuando voy a postear me dice method not implemented

freedarwuin


Zero

Hola btocarmona,

Gracias por compartir.
Tengo dos observaciones para que mejores tu script:
Si queres precindir del uso de "sed" en la línea #10:i2=`echo $i|sed -e "s/cpp/so/g"` la cual está dentro del bucle for del archivo compilador.sh,  puedes usar mas bien la línea que compila por esta:
g++ -I. -fPIC -shared -o ${i%.*}.so ${i%.*}.cpp
y opino que en cambio de que cada vez que compila un plugin le cambie los permisos, mejor primero compile todos y luego cambie los permisos de todos y luego si los mueva todos, es decir que dichas lineas irían por fuera del for.  :-*

Un abrazo,



Lelouch
En GNU/Linux formatear por cualquier cosa es de noobs, tu decides si eres uno...

btocarmona

Cita de: freedarwuin en Septiembre 23, 2013, 07:56:29 PM
bash compilador.sh
bash compilador.sh
bash: compilador.sh: No existe el fichero o el directorio
Amigo te dice que no existe porque lo estas ejecutando eo el raiz y el archivo compilador.sh el script lo guardo en etcraptorpluginmakerplugins por lo cual primero debes ingresar a esa carpeta te puse todo junto porq si le pongo las barras el foro no me deja

freedarwuin


btocarmona

Cita de: freedarwuin en Septiembre 23, 2013, 09:05:14 PM
etc/raptor/pluginmaker/plugins# bash compilador.sh
Exacto amigo asi. a mi no me deja poner barras el foro

freedarwuin

y si algun plugin no esta elaborado el muestra algun error al momento de compilar?

btocarmona

Cita de: Lelouch en Septiembre 23, 2013, 08:39:30 PM
Hola btocarmona,

Gracias por compartir.
Tengo dos observaciones para que mejores tu script:
Si queres precindir del uso de "sed" en la línea #10:i2=`echo $i|sed -e "s/cpp/so/g"` la cual está dentro del bucle for del archivo compilador.sh,  puedes usar mas bien la línea que compila por esta:
g++ -I. -fPIC -shared -o ${i%.*}.so ${i%.*}.cpp
y opino que en cambio de que cada vez que compila un plugin le cambie los permisos, mejor primero compile todos y luego cambie los permisos de todos y luego si los mueva todos, es decir que dichas lineas irían por fuera del for.  :-*

Un abrazo,



Lelouch

Ya hice ese cambio amigo primero los compila a todos luego cambia los permisos, muchas gracias por tu sugerencia

freedarwuin

Gracias lo probare y despues le contare..


firecold

Cita de: freedarwuin en Septiembre 23, 2013, 09:05:14 PM
etc/raptor/pluginmaker/plugins# bash compilador.sh
Cita de: btocarmona en Septiembre 27, 2013, 12:48:54 AM
Ya hice ese cambio amigo primero los compila a todos luego cambia los permisos, muchas gracias por tu sugerencia

Por casualidad pase por el post y creo que con las correciones de Zero y unas cuantas mias se puede areglar:

Código (bash) [Seleccionar]
#!/bin/bash
echo "+=====================================================================+"
echo "|              Se procedera a crear las carpetas necesarias,          |"
echo "|                y a descargar el compilador de plugins.              |"
echo "|                     btocarmona foro Alterserv                       |"
echo "+=====================================================================+"
echo enter para continuar...
read -n 0 -ers
echo MOVIENDOSE A DIRECTORIO | grep MOVIENDOSE A DIRECTORIO
cd /etc/raptor/pluginmaker/plugins/
for i in *.cpp ; do
i2=`echo $i|sed -n "s/cpp/so/g"`
echo "Compilando $i"
g++ -I. -fPIC -shared -g -o ${i%.*}.so ${i%.*}.cpp
done
sleep 1
echo MOVIENDO PLUGINS | grep MOVIENDO PLUGINS
sleep 1
mv *.so /etc/raptor/plugins/
sleep 1
echo CAMBIANDO PERMISOS | grep CAMBIANDO PERMISOS
sleep 1
chmod 777 -Rf /etc/raptor/plugins/
sleep 1
echo Elegir el lugar donde se almacenara el regex - Ej: /etc/raptor/regex.txt: | grep /etc/raptor/regex.txt
read CARPETA
cat *.cpp | grep -e 'http*' >> $CARPETA
exit 0


Creo que todavia le falta, ya que al copiar el regex tambien copia las slash, por eso pido una carpeta para que puedan agregar todos los regex en un solo archivo y despues manualmente pasarlos a raptor.lst, Saludos

rifranco202325

claro porq en el raptor.lst se desordenan jejejeje  a hora amigo firecold te falta en el scrip q haga la busqueda de cada letra en este caso como estan en mayuscula la busque y la colote de bajo de las q siguen

firecold

Cita de: rifranco202325 en Noviembre 22, 2013, 11:13:52 PM
claro porq en el raptor.lst se desordenan jejejeje  a hora amigo firecold te falta en el scrip q haga la busqueda de cada letra en este caso como estan en mayuscula la busque y la colote de bajo de las q siguen

Poco a poco, creo que con ayuda de sed se puede hacer pero todavia no descubro como, por el momento se tendra que quedar asi mientras encuentro la manera o talvez algun amigo del foro se anima a ayudarnos, Saludos

rifranco202325

o tambien se puede hacer en el raptor.conf crear otro archivo y del scrip q hace eso digo

firecold

Mejoras a este script:

Código (bash) [Seleccionar]
#!/bin/bash
R=`echo "\033[01;31m"` # Rojo
A=`echo "\033[01;34m"` # Azul
N=`echo "\033[m"`   # Normal
echo -e "$R +=====================================================================+"
echo -e "$R |                   SCRIPT PARA COMPILAR PLUGINS EN MASA              |"
echo -e "$R |                               FORO ALTERSERV                        |"
echo -e "$R |                                                                     |"
echo -e "$R +=====================================================================+$N"
echo enter para continuar...
read -n 0 -ers
echo -e "$R MOVIENDOSE A DIRECTORIO $N"
cd /etc/raptor/pluginmaker/plugins/
for i in *.cpp ; do
i2=`echo $i|sed -n "s/cpp/so/g"`
echo -e "$A Compilando $i $N"
g++ -I. -fPIC -shared -g -o ${i%.*}.so ${i%.*}.cpp
done
sleep 1
echo -e "$R MOVIENDO PLUGINS $N"
sleep 1
mv *.so /etc/raptor/plugins/
sleep 1
echo -e "$R CAMBIANDO PERMISOS $N"
sleep 1
chmod 777 -Rf /etc/raptor/plugins/
sleep 1
echo -e "Elegir el lugar donde se almacenara el regex" "$R Ej: /etc/raptor/regex.txt $N:"
read CARPETA
cat *.cpp | grep -e 'http*' >> $CARPETA
exit 0


La cuestion de la mejora es solamente colores no es gran cosa pero es visualmente mas atractivo, Saludos

luistec

Cita de: firecold en Noviembre 22, 2013, 10:55:26 PM
Por casualidad pase por el post y creo que con las correciones de Zero y unas cuantas mias se puede areglar:

Código (bash) [Seleccionar]
#!/bin/bash
echo "+=====================================================================+"
echo "|              Se procedera a crear las carpetas necesarias,          |"
echo "|                y a descargar el compilador de plugins.              |"
echo "|                     btocarmona foro Alterserv                       |"
echo "+=====================================================================+"
echo enter para continuar...
read -n 0 -ers
echo MOVIENDOSE A DIRECTORIO | grep MOVIENDOSE A DIRECTORIO
cd /etc/raptor/pluginmaker/plugins/
for i in *.cpp ; do
i2=`echo $i|sed -n "s/cpp/so/g"`
echo "Compilando $i"
g++ -I. -fPIC -shared -g -o ${i%.*}.so ${i%.*}.cpp
done
sleep 1
echo MOVIENDO PLUGINS | grep MOVIENDO PLUGINS
sleep 1
mv *.so /etc/raptor/plugins/
sleep 1
echo CAMBIANDO PERMISOS | grep CAMBIANDO PERMISOS
sleep 1
chmod 777 -Rf /etc/raptor/plugins/
sleep 1
echo Elegir el lugar donde se almacenara el regex - Ej: /etc/raptor/regex.txt: | grep /etc/raptor/regex.txt
read CARPETA
cat *.cpp | grep -e 'http*' >> $CARPETA
exit 0


Creo que todavia le falta, ya que al copiar el regex tambien copia las slash, por eso pido una carpeta para que puedan agregar todos los regex en un solo archivo y despues manualmente pasarlos a raptor.lst, Saludos
Buen trabajo firecold, ya hace tiempo utilizaba el script de compilar varios plugins, el codigo venia en el thunder pero solo la parte del bucle
Código (bash) [Seleccionar]

#!/bin/bash
for i in *.cpp ; do
 i2=`echo $i|sed -e "s/cpp/so/g"`
 echo "Compilando $i"
 g++ -I. -fPIC -shared -o $i2 $i
done

Los detalles de mover, remover, ya son cuestiones mas sencillas de agregar al script, pero a la vez importantes si se quiere que el script haga todo el trabajo. Sobre copiar el regex sin las "//" es secillo, pero para que funcione correctamente se tiene que poner este parametro adecuadamente en codigo de fuente, solo faltaria uqe antes verificara si hay un regex anterior en el raptor.lst de ser asi que lo remplace, se podria hacer esto con una funcion.
Ya estare posteando mi script.

Saludos.

firecold

Cita de: luistec en Noviembre 25, 2013, 06:31:09 PM
Buen trabajo firecold, ya hace tiempo utilizaba el script de compilar varios plugins, el codigo venia en el thunder pero solo la parte del bucle
Código (bash) [Seleccionar]

#!/bin/bash
for i in *.cpp ; do
  i2=`echo $i|sed -e "s/cpp/so/g"`
  echo "Compilando $i"
  g++ -I. -fPIC -shared -o $i2 $i
done

Los detalles de mover, remover, ya son cuestiones mas sencillas de agregar al script, pero a la vez importantes si se quiere que el script haga todo el trabajo. Sobre copiar el regex sin las "//" es secillo, pero para que funcione correctamente se tiene que poner este parametro adecuadamente en codigo de fuente, solo faltaria uqe antes verificara si hay un regex anterior en el raptor.lst de ser asi que lo remplace, se podria hacer esto con una funcion.
Ya estare posteando mi script.

Saludos.

Gracias Luistec nos vendria bien tu ayuda, tambien se le ha hecho otras mejoras, como por ejemplo: despues de compilar crear una carpeta llamada cpp y mover todos los .cpp en esta, para que si uno agrega mas codigos no vuelva a comnpilar de nuevo los que ya estaban en dicha carpeta, con lo del bucle si tenias razon ya existia en el codigo del thunder, pero gracias al amigo Zero fue mejorado y dejado hasta el momento asi:

Código (bash) [Seleccionar]
#!/bin/bash
R=`echo "\033[01;31m"` # Rojo
A=`echo "\033[01;34m"` # Azul
N=`echo "\033[m"`      # Normal
echo -e "$R +=====================================================================+"
echo -e "$R |                   SCRIPT PARA COMPILAR PLUGINS EN MASA              |"
echo -e "$R |                               FORO ALTERSERV                        |"
echo -e "$R |                                                                     |"
echo -e "$R +=====================================================================+$N"
echo Pulsa Enter para continuar...
read -n 0 -ers
echo -e "$R MOVIENDOSE A DIRECTORIO $N"
cd /etc/raptor/pluginmaker/plugins/
for i in *.cpp ; do
i2=`echo $i|sed -n "s/cpp/so/g"`
echo -e "$A Compilando $i $N"
g++ -I. -fPIC -shared -g -o ${i%.*}.so ${i%.*}.cpp
done
sleep 1
echo -e "$R MOVIENDO PLUGINS Y CODIGOS $N"
sleep 3
mv *.so /etc/raptor/plugins/
mkdir /etc/raptor/pluginmaker/plugins/cpp/
mv *.cpp /etc/raptor/pluginmaker/plugins/cpp/
sleep 1
echo -e "$R CAMBIANDO PERMISOS $N"
sleep 1
chmod 777 -Rf /etc/raptor/plugins/
sleep 1
echo -e "Elegir el lugar donde se almacenara el regex" "$R Ej: /etc/raptor/regex.txt $N:"
read REGEX
cat *.cpp | grep -e 'http*' >> $REGEX
exit 0


Estaremos esperando ansiosamente su script, Saludos

luistec

Cita de: firecold en Noviembre 25, 2013, 07:31:57 PM
Gracias Luistec nos vendria bien tu ayuda, tambien se le ha hecho otras mejoras, como por ejemplo: despues de compilar crear una carpeta llamada cpp y mover todos los .cpp en esta, para que si uno agrega mas codigos no vuelva a comnpilar de nuevo los que ya estaban en dicha carpeta, con lo del bucle si tenias razon ya existia en el codigo del thunder, pero gracias al amigo Zero fue mejorado y dejado hasta el momento asi:
Justamente el amigo Zero dice: "si se quiere precindir del uso de sed ", en el caso de hacer la modificacion que funcion cumple la variable "i2" en el codigo.

Saludos.

firecold

Cita de: luistec en Noviembre 25, 2013, 07:50:31 PM
Justamente el amigo Zero dice: "si se quiere precindir del uso de sed ", en el caso de hacer la modificacion que funcion cumple la variable "i2" en el codigo.

Saludos.

Perdon amigo ya habia hecho la modificacion pero no la habia echo adecuadamente, el bucle tenia que quedar asi:

Código (bash) [Seleccionar]
for i in *.cpp ; do
echo -e "$A Compilando ${i%.*}.cpp $N"
g++ -I. -fPIC -shared -g -o ${i%.*}.so ${i%.*}.cpp
done


Saludos

firecold

Cita de: luistec en Noviembre 25, 2013, 07:50:31 PM
Justamente el amigo Zero dice: "si se quiere precindir del uso de sed ", en el caso de hacer la modificacion que funcion cumple la variable "i2" en el codigo.

Saludos.

Amigo Luistec fijese que pensando lo de los regex se puede agregar de esta manera:

Código (bash) [Seleccionar]
for i in `cat *.cpp` ; do
R=`echo $i| grep -e 'http*' >> /etc/raptor/raptor.lst`
done


Esto agregaría los regex completos a raptor.lst, sin slash ni espacios, pruebe y me avisa, Saludos

centronick

Cita de: firecold en Noviembre 25, 2013, 09:32:11 PM
Amigo Luistec fijese que pensando lo de los regex se puede agregar de esta manera:

Código (bash) [Seleccionar]
for i in `cat *.cpp` ; do
R=`echo $i| grep -e 'http*' >> /etc/raptor/raptor.lst`
done


Esto agregaría los regex completos a raptor.lst, sin slash ni espacios, pruebe y me avisa, Saludos

fINO Y EL FINAL COMO SERIA COMO QUEDARIA