TE lo dejo con las siguientes mejoras
no necesitas cd a ninguna ruta
no usar comandos encadenados && , cuando uno falla no se ve el error
comprobacion de gemas una a una
el directorio de gema solo se crea si una gema se va a instalar
se define la variable rutagema ...asi cuando la ruta cambie, solo habra que tocar una linea de code
**** pendiente que revises eso del sed ruby *******
#!/bin/sh
# Script by www.seguridadwireless.net
SCRIPT_VERSION=20151023
############################################################
## Funciones comunes. Su nombre empieza por f_ ##
############################################################
f_variables(){
. /opt/wifislax-updaters/Funciones/funciones_updater
}
############################################################
## Funciones propias del script. Su nombre empieza por F_ ##
############################################################
# Definicion de variables
F_variables() {
PRGNAM=wpscanteam
SRCNAM=wpscan
echo -ne "\033]2;${PRGNAM}_updater\007"
WEB=https://github.com/$PRGNAM/$SRCNAM
VERSION=`echo $(curl -s $WEB/releases | grep releases/tag | head -1 | cut -d "/" -f6 | cut -d '"' -f1)`
EXTENSION=tar.gz
SOURCES=$SRCNAM-$VERSION.$EXTENSION
DOWNLOAD=$WEB/archive/$VERSION.$EXTENSION
}
# Descomprimimos el fichero descargado y compilamos
F_compilar(){
mkdir -p $PKG/usr/{bin,lib/wpscan,share/{wpscan,pixmaps,applications/wifislax/Testing}}
#creamos el icono
echo "
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
" | base64 -d > $PKG/usr/share/pixmaps/wpscanteam.png
#Crear menu
echo "[Desktop Entry]
Categories=testing
Exec=sh -c '/usr/bin/wpscanteam -h;${SHELL:-bash}'
Icon=wpscanteam
Name=WpScanTeam
Comment=Pentest Wordpress
GenericName=Pentest Wordpress
Terminal=true
Type=Application" > $PKG/usr/share/applications/wifislax/Testing/wpscanteam.desktop
echo
echo "$VERDE"Instalando, puede tardar unos minutos ..."$CIERRE"
sleep 1
#### VERIFICACION DE GEMAS EN SISTEMA #####
RUTAGEMAS=$PKG/usr/lib/ruby/gems/2.2.0
# Gema terminal-table -v 1.4.5
GEMAterminal=$(gem list|grep terminal-table|grep -o 1.4.5)
if [ -z "$GEMAterminal" ]; then
if [ ! -d $RUTAGEMAS ]; then
mkdir -p $RUTAGEMAS
fi
gem install -i $RUTAGEMAS terminal-table -v 1.4.5
fi
# Gema bundler
GEMAbundle=$(gem list|grep -o bundler)
if [ -z "$GEMAbundle" ]; then
if [ ! -d $RUTAGEMAS ]; then
mkdir -p $RUTAGEMAS
fi
gem install -i $RUTAGEMAS bundler
fi
# Gema nokogiri
GEMAnokogiri=$(gem list|grep -o nokogiri)
if [ -z "$GEMAnokogiri" ]; then
if [ ! -d $RUTAGEMAS ]; then
mkdir -p $RUTAGEMAS
fi
gem install -i $RUTAGEMAS nokogiri
fi
# Gema typhoeus
GEMAtyphoeus=$(gem list|grep -o typhoeus)
if [ -z "$GEMAtyphoeus" ]; then
if [ ! -d $RUTAGEMAS ]; then
mkdir -p $RUTAGEMAS
fi
gem install -i $RUTAGEMAS typhoeus
fi
# Gema addressable
GEMAaddressable=$(gem list|grep -o addressable)
if [ -z "$GEMAaddressable" ]; then
if [ ! -d $RUTAGEMAS ]; then
mkdir -p $RUTAGEMAS
fi
gem install -i $RUTAGEMAS addressable
fi
# Gema yajl-ruby
GEMAyajl=$(gem list|grep -o yajl-ruby)
if [ -z "$GEMAyajl" ]; then
if [ ! -d $RUTAGEMAS ]; then
mkdir -p $RUTAGEMAS
fi
gem install -i $RUTAGEMAS yajl-ruby
fi
# Gema ruby-progressbar
GEMAprogressbar=$(gem list|grep -o ruby-progressbar)
if [ -z "$GEMAprogressbar" ]; then
if [ ! -d $RUTAGEMAS ]; then
mkdir -p $RUTAGEMAS
fi
gem install -i $RUTAGEMAS progressbar
fi
# Gema webmock
GEMAwebmock=$(gem list|grep -o webmock)
if [ -z "$GEMAwebmock" ]; then
if [ ! -d $RUTAGEMAS ]; then
mkdir -p $RUTAGEMAS
fi
gem install -i $RUTAGEMAS webmock
fi
# Gema simplecov
GEMAsimplecov=$(gem list|grep -o simplecov)
if [ -z "$GEMAsimplecov" ]; then
if [ ! -d $RUTAGEMAS ]; then
mkdir -p $RUTAGEMAS
fi
gem install -i $RUTAGEMAS simplecov
fi
# Gema rspec
GEMArspec=$(gem list|grep -o rspec)
if [ -z "$GEMArspec" ]; then
if [ ! -d $RUTAGEMAS ]; then
mkdir -p $RUTAGEMAS
fi
gem install -i $RUTAGEMAS rspec
fi
# Gema rspec-its
GEMAits=$(gem list|grep -o rspec-its)
if [ -z "$GEMAits" ]; then
if [ ! -d $RUTAGEMAS ]; then
mkdir -p $RUTAGEMAS
fi
gem install -i $RUTAGEMAS rspec-its
fi
#### FIN DE VERIFICACION DE GEMAS EN SISTEMA #####
#Metemos todo para posteriormente crear el modulo
sed -i 's/$0/"wpscanteam"/g' lib/wpscan/wpscan_helper.rb #Parcheamos en este ultimo comando para la help
cp --no-preserve=ownership -r * "$PKG/usr/share/wpscan"
touch $PKG/usr/bin/wpscanteam
cat > "$PKG/usr/bin/wpscanteam" <<\EOF
#!/bin/sh
localdir=$HOME/.wpscan
mkdir -p "$localdir"
cp -Rf /usr/share/wpscan/* "$localdir"
cd "$localdir"
ruby ./wpscan.rb "$@"
EOF
chmod +x "$PKG/usr/bin/wpscanteam"
}
###################################
## BLOQUE PRINCIPAL DE EJECUCION ##
###################################
# Si se cierra el script inesperadamente, ejecutar la funcion de limpieza
trap f_exitmode SIGHUP SIGINT
#Inicializamos las variables globales
f_variables
#Comprobamos conexion a Internet
f_comprobarConexion
#Inicializamos las variables del script
F_variables
#Creamos directorio de trabajo
f_directorioTemporal
#Mostramos el mensaje de presentacion
f_presentacion
#Comprobamos updates del script
f_comprobarUpdates
#Asignamos o detectamos arquitectura
f_arquitectura
#Comprobamos version instalada del paquete
f_versionInstalada
#Si no existe el fichero se descargara
f_download
#Preparamos entorno
f_preparar
#Descomprimir fichero descargado y compilamos
F_compilar
#Hacemos strip sobre el paquete
f_strip
#Creamos xzm , instalamos y salimos
f_tareasFinales