Created
September 13, 2013 00:34
-
-
Save joaoneto/6545594 to your computer and use it in GitHub Desktop.
Nice zenity installer example
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
function infinite_progress { | |
$* 2> /dev/null | |
} | |
function verify_dependencies { | |
local DEPS="" | |
local PACKAGES=$1 | |
for PACKAGE in $PACKAGES ; do | |
CMD=$(dpkg --get-selections | grep "$PACKAGE") | |
if [ -z "$CMD" ] ; then | |
DEPS="$DEPS $PACKAGE" | |
fi | |
done | |
echo $DEPS | |
} | |
# Init | |
function setup_init { | |
echo "# Atualizando repositórios" | |
infinite_progress apt-get update | |
echo "\r# Repositórios aualizados!!!" | |
} | |
# Setup Modules | |
# Apache | |
function setup_module_apache { | |
echo "# Verificando se o Apache2 está instalado" | |
PACOTES=$(verify_dependencies "apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common") | |
if [ -n "$PACOTES" ] ; then | |
echo "# Instalando Apache2" | |
infinite_progress apt-get install -y $PACOTES | |
echo "\r# Apache2 instalado!!!" | |
else | |
echo "# Apache2 OK!!!" | |
fi | |
} | |
# PHP5 | |
function setup_module_php5 { | |
echo "# Verificando se o PHP5 está instalado" | |
PACOTES=$(verify_dependencies "libapache2-mod-php5 php-auth-sasl php-http-request php-mail php-mail-mime php-mail-mimedecode php-net-dime php-net-smtp php-net-socket php-net-url php-pear php-soap php5 php5-cli php5-common php5-curl php5-dev php5-gd php5-mcrypt php5-mysql php5-sqlite php5-xdebug php5-xmlrpc php5-xsl") | |
if [ -n "$PACOTES" ] ; then | |
echo "# Instalando PHP5" | |
infinite_progress apt-get install -y $PACOTES | |
echo "\r# PHP5 instalado!!!" | |
else | |
echo "# PHP5 OK!!!" | |
fi | |
} | |
# MySQL | |
function setup_module_mysql { | |
echo "# Verificando se o MySQL está instalado" | |
PACOTES=$(verify_dependencies "mysql-client mysql-common mysql-server") | |
if [ -n "$PACOTES" ] ; then | |
echo "# Instalando MySQL" | |
echo "mysql-server mysql-server/root_password select (password omitted)" | debconf-set-selections | |
echo "mysql-server mysql-server/root_password_again select (password omitted)" | debconf-set-selections | |
infinite_progress apt-get install -y --force-yes --no-download --ignore-missing mysql-client mysql-common mysql-server | |
echo "\r# MySQL instalado!!!" | |
else | |
echo "# MySQL OK!!!" | |
fi | |
} | |
# FileZilla | |
function setup_module_filezilla { | |
echo "# Verificando se o FileZilla está instalado" | |
PACOTES=$(verify_dependencies "filezilla filezilla-common") | |
if [ -n "$PACOTES" ] ; then | |
echo "# Instalando FileZilla" | |
infinite_progress apt-get install -y filezilla filezilla-common | |
echo "\r# FileZilla instalado!!!" | |
else | |
echo "# FileZilla OK!!!" | |
fi | |
} | |
# Sublime Text 2 | |
function setup_module_sublimetext2 { | |
echo "# Verificando se o Sublime Text 2 está instalado" | |
PACOTES=$(verify_dependencies "sublime-text") | |
if [ -n "$PACOTES" ] ; then | |
echo "# Instalando Sublime Text 2" | |
infinite_progress add-apt-repository -y ppa:webupd8team/sublime-text-2 | |
infinite_progress apt-get update | |
infinite_progress apt-get install -y $PACOTES | |
echo "\r# Sublime Text 2 instalado!!!" | |
else | |
echo "# Sublime Text 2 OK!!!" | |
fi | |
} | |
# Virtualbox | |
function setup_module_virtualbox { | |
echo "# Verificando se o Virtualbox está instalado" | |
PACOTES=$(verify_dependencies "virtualbox virtualbox-fuse virtualbox-guest-additions virtualbox-guest-additions-iso virtualbox-guest-utils virtualbox-guest-x11") | |
if [ -n "$PACOTES" ] ; then | |
echo "# Instalando Virtualbox" | |
infinite_progress apt-get install -y $PACOTES | |
echo "\r# Virtualbox instalado!!!" | |
else | |
echo "# Virtualbox OK!!!" | |
fi | |
} | |
# Preload | |
function setup_module_preload { | |
echo "# Verificando se o Preload está instalado" | |
PACOTES=$(verify_dependencies "preload") | |
if [ -n "$PACOTES" ] ; then | |
echo "# Instalando Preload" | |
infinite_progress apt-get install -y $PACOTES | |
echo "\r# Preload instalado!!!" | |
else | |
echo "# Preload OK!!!" | |
fi | |
} | |
# Adobe Flash Player | |
function setup_module_flashplayer { | |
echo "# Verificando se o Adobe Flash Player está instalado" | |
PACOTES=$(verify_dependencies "flashplugin-installer") | |
if [ -n "$PACOTES" ] ; then | |
echo "# Instalando Adobe Flash Player" | |
infinite_progress apt-get install -y $PACOTES | |
echo "\r# Adobe Flash Player instalado!!!" | |
else | |
echo "# Adobe Flash Player OK!!!" | |
fi | |
} | |
# Oracle Java | |
function setup_module_java { | |
echo "# Verificando se o Oracle Java está instalado" | |
PACOTES=$(verify_dependencies "oracle-java8-installer") | |
if [ -n "$PACOTES" ] ; then | |
echo "# Instalando Oracle Java" | |
echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 boolean true" | debconf-set-selections | |
infinite_progress add-apt-repository -y ppa:webupd8team/java | |
infinite_progress apt-get update | |
infinite_progress apt-get install -y --force-yes --no-download --ignore-missing $PACOTES | |
echo "\r# Oracle Java instalado!!!" | |
else | |
echo "# Oracle Java OK!!!" | |
fi | |
} | |
# add-apt-repository ppa:webupd8team/java | |
# apt-get install -y oracle-java8-installer | |
# apt-add-repository "deb http://archive.canonical.com/ $(lsb_release -sc) partner" | |
# apt-get update | |
# apt-get install skype | |
if [ "$UID" != "0" ]; then | |
zenity --error --title=Setup --text="Precisa ser root!" | |
exit 1 | |
fi | |
MODULES=`zenity --title=Setup --text="Selecione os módulos que serão configurados e/ou instalados no Ubuntu:\n" \ | |
--height=400 --width=640 --list --separator=" " --checklist --print-column 3 --hide-column 3 --column="" --column="Módulos" --column="" \ | |
true "Apache2" "apache" \ | |
true "PHP5" "php5" \ | |
true "MySQL" "mysql" \ | |
true "Sublime Text 2" "sublimetext2" \ | |
true "Virtualbox" "virtualbox" \ | |
true "Preload" "preload" \ | |
true "Adobe Flash Player" "flashplayer" \ | |
true "Oracle Java" "java"` | |
COUNT_MODULES=$(echo "$MODULES" | wc -w) | |
OFFSET=$((100 / COUNT_MODULES)) | |
if [[ $? == 0 ]] ; then | |
( | |
x=0 | |
for mod in $MODULES; do | |
x=`expr $x + $OFFSET` | |
setup_module_$mod | |
echo $x | |
done | |
echo "# Setup finalizado." | |
) | zenity --title "Executando setup" --width=400 "Verificando..." --progress --pulsate | |
else | |
echo "Cancelado, saindo!" | |
exit 1 | |
fi | |
echo "" | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment