Autocafeijao
Publicado por Perfil removido (última atualização em 04/06/2011)
[ Hits: 5.326 ]
Autocafeijao é um script para instalar os pacotes Java e NetBeans IDE.
Copyright © 2011 Cesar Augustus Silva
GNU GPL v.3
http://blog.cesar.augustus.nom.br/
#!/bin/bash
# Autocafeijao is a script to install Java packages and NetBeans IDE.
# Copyright (C) 2011 Cesar Augustus Silva
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
cmdname=$(basename $0)
pid=$$
license()
{
echo "Autocafeijao Copyright (C) 2011 Cesar A. Silva"
echo "This program comes with ABSOLUTELY NO WARRANTY."
echo "This is free software, and you are welcome to"
echo "redistribute it under certain conditions."
echo ""
}
usage()
{
echo "Uso: ${cmdname} [OPÇÃO]..."
echo "Baixa e instala os pacotes do Java (JDK) e NetBeans IDE"
echo ""
echo " OPÇÕES:"
echo ""
echo " -t tipo Define o tipo de exibição."
echo " --type tipo (tipos: text e zenity)"
echo ""
echo " -j endereço Define o link do pacote Java (JDK). Usado em"
echo " --jdk endereço diversas distr. exceto as que usa 'apt-get'"
echo ""
echo " --no-check-conn Não verifica se está conectado a internet"
echo ""
echo " --no-install-jdk Não baixa os pacotes do Java (JDK) para instalar."
echo ""
echo " --no-install-netbeans Não baixa o pacote NetBeans IDE para instalar."
echo ""
echo " Exemplos:"
echo ""
echo " Rodar no modo texto (terminal)"
echo ""
echo " ${cmdname} -t text"
echo ""
echo " Rodar com o zenity (caixa de diálogo)"
echo ""
echo " ${cmdname} -t zenity"
echo ""
echo "Relatos de problemas e sugestões para <cesaraugustussilva@linuxmail.org>."
}
error_msg()
{
if [ $view = "text" ]
then
echo -e "$1"
else
zenity $2 --text "$1"
[ "$3" = "--kill" ] && kill -6 $pid
fi
exit 1
}
check_perm()
{
[ $(whoami) != "root" ] && error_msg "Precisa de privilégios administrativos! \nExecute com o usuário root." --warning
}
check_conn()
{
if [ $view = "text" ]
then
echo -n "Verificando a conexão..."
ping -c3 www.google.com 1> /dev/null 2> /dev/null && echo "OK" || error_msg "ERRO\nPrecisa está conectado a internet! "
else
(
echo "#Verificando a conexão"
ping -c3 www.google.com 1> /dev/null 2> /dev/null || error_msg "Precisa está conectado a internet! " --warning --kill
) | zenity --progress --title "Aguarde" --pulsate --auto-close --auto-kill
fi
}
check_dist()
{
if [ ! -z $(which apt-get 2> /dev/null) ]
then
dist="debian"
else
if [ ! -z $(which yum 2> /dev/null) ]
then
dist="redhat"
else
dist="other"
fi
fi
}
check_jdk()
{
if [ -z $jdk ]
then
if [ $dist = "redhat" ]
then
jdk="http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u23-linux-i586-rpm.bin?BundledLineItemUUID=PVeJ_hCvS0IAAAEtGrApHvbU&OrderID=1V6J_hCvLLcAAAEtArApHvbU&ProductID=QhOJ_hCw.dUAAAEsFIMcKluK&FileName=/jdk-6u23-linux-i586-rpm.bin"
else
jdk="http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u23-linux-i586.bin?BundledLineItemUUID=UwCJ_hCwbi8AAAEtSHgAHOh5&OrderID=RleJ_hCwX4cAAAEtOngAHOh5&ProductID=QhOJ_hCw.dUAAAEsFIMcKluK&FileName=/jdk-6u23-linux-i586.bin"
fi
fi
}
install_jdk()
{
if [ -z $(which javac 2> /dev/null) ]
then
if [ $dist = "debian" ]
then
if [ $view = "text" ]
then
echo "Instalando o Java (JDK)"
apt-get install -y sun-java6-jdk || error_msg "\nOs pacotes do Java (JDK) não estão disponíveis! Verifique se os repositórios necessários estão habilitados."
else
(
echo "#Baixando os pacotes do Java (JDK)"
apt-get install -d -y sun-java6-jdk || error_msg "Os pacotes do Java (JDK) não estão disponíveis! \nVerifique se os repositórios necessários estão habilitados." --error --kill
) | zenity --progress --title "Aguarde" --pulsate --auto-close --auto-kill
xterm -T "Instalando o Java (JDK)" -e "apt-get install -y sun-java6-jdk"
fi
else
if [ $dist = "redhat" ]
then
if [ $view = "text" ]
then
if [ -z $(which wget 2> /dev/null) ]
then
echo "Instalando o wget"
yum install -y wget
fi
echo "Baixando os pacotes do Java (JDK)"
wget -c $jdk -O java-jdk-rpm.bin || error_msg "O link dos pacotes do Java (JDK) parece está quebrado! \nUse a opção '--jdk' para definir um novo link."
chmod +x java-jdk-rpm.bin
echo "Instalando o Java (JDK)"
./java-jdk-rpm.bin
else
(
echo "1"
echo "#Verificando os pacotes"
sleep 3s
if [ -z $(which wget 2> /dev/null) ]
then
echo "#Instalando o 'wget'"
yum install -y wget
fi
if [ -z $(which xterm 2> /dev/null) ]
then
echo "#Instalando o 'xterm'"
yum install -y xterm
fi
) | zenity --progress --title "Aguarde" --pulsate --auto-close --auto-kill
(
echo "#Baixando os pacotes do Java (JDK)"
cat <(wget -c $jdk -O java-jdk-rpm.bin 2>&1 || error_msg "O link dos pacotes do Java (JDK) parece está quebrado! \nUse a opção '--jdk' para definir um novo link." --error --kill) | sed -u 's/.*\ \(.*\)\+%\ .*/\1/'
) | zenity --progress --title "Aguarde" --percentage=0 --auto-close --auto-kill
chmod +x java-jdk-rpm.bin
xterm -T "Instalando o Java (JDK)" -e "./java-jdk-rpm.bin"
fi
rm -f sun-javadb-*.rpm
rm -f jdk-*.rpm
else
if [ $view = "text" ]
then
echo "Baixando os pacotes do Java (JDK)"
wget -c $jdk -O java-jdk.bin || error_msg "O link dos pacotes do Java (JDK) parece está quebrado! Use a opção '--jdk' para definir um novo link."
chmod +x java-jdk.bin
echo "Instalando o Java (JDK)..."
./java-jdk.bin
else
(
echo "#Baixando os pacotes do Java (JDK)"
cat <(wget -c $jdk -O java-jdk.bin 2>&1 || error_msg "O link dos pacotes do Java (JDK) parece está quebrado! \nUse a opção '--jdk' para definir um novo link." --error --kill) | sed -u 's/.*\ \(.*\)\+%\ .*/\1/'
) | zenity --progress --title "Aguarde" --percentage=0 --auto-close --auto-kill
chmod +x java-jdk.bin
xterm -T "Instalando o Java (JDK)" -e "./java-jdk.bin"
fi
jdkdir=$(ls | grep jdk)
mv $jdkdir /usr/lib/
[ -L /usr/lib/java ] && rm /usr/lib/java
ln -s /usr/lib/$jdkdir /usr/lib/java
cat > /etc/profile.d/java.sh <<- fim
#!/bin/sh
export JAVA_HOME=/usr/lib/java
export CLASSPATH=\$JAVA_HOME/lib
export MANPATH=\$MANPATH:\$JAVA_HOME/man
export PATH=\$PATH:\$JAVA_HOME/bin
fim
chmod +x /etc/profile.d/java.sh
. /etc/profile.d/java.sh
fi
fi
else
if [ $view = "text" ]
then
echo "O Java (JDK) já está instalado."
else
zenity --info --title "Informação" --text "O Java (JDK) já está instalado."
fi
fi
}
check_version()
{
ver=( "" "6.9.1" "6.9" "6.8" "6.7.1" "6.7" "6.5.1" "6.5" "6.1" "6.0.1" "6.0" )
versions="6.9.1\n6.9\n6.8\n6.7.1\n6.7\n6.5.1\n6.5\n6.1\n6.0.1\n6.0"
op=0
if [ $view = "text" ]
then
until [ $op -ge 1 -a $op -le 10 ]
do
echo "NetBeans IDE (Versões)"
paste <(seq -w 10) <(echo -e "$versions") | sed 's/\t/ -- /'
read op
done
else
ver[0]=$(zenity --list --radiolist --title "Versão do NetBeans IDE" --text "Selecione a versão do NetBeans IDE:" --height "400" --column "Opção" --column "Versão" TRUE 6.9.1 $(echo -e $versions | grep -v '6.9.1' | xargs -n1 echo FALSE))
[[ $? != 0 ]] && exit 0
fi
}
install_netbeans()
{
if [ ! -e /usr/local/netbeans-${ver[$op]}/bin/netbeans ]
then
url="http://dlc.sun.com.edgesuite.net/netbeans/${ver[$op]}/final/bundles/netbeans-${ver[$op]}-ml-javase-linux.sh"
if [ $view = "text" ]
then
echo "Baixando o pacote NetBeans IDE ${ver[$op]}"
wget -c $url || error_msg "\nO link do pacote NetBeans IDE ${ver[$op]} parece está\nquebrado ou você está desconectado a internet! "
else
(
echo "#Baixando o pacote NetBeans IDE ${ver[$op]}"
cat <(wget -c $url 2>&1 || error_msg "O link do pacote NetBeans IDE ${ver[$op]} parece está\nquebrado ou você está desconectado a internet! " --error --kill) | sed -u 's/.*\ \(.*\)\+%\ .*/\1/'
) | zenity --progress --title "Aguarde" --percentage=0 --auto-close --auto-kill
fi
chmod +x netbeans-${ver[$op]}-ml-javase-linux.sh
./netbeans-${ver[$op]}-ml-javase-linux.sh
else
error_msg "O NetBeans IDE ${ver[$op]} já está instalado." --info
fi
}
while [ $# -gt 0 ]
do
case $1 in
-t | --type)
if [ ! -z $2 ]
then
view=$2
if [ $view = "text" ] || [ $view = "zenity" ]
then
shift 2
else
view="text" && error_msg "${cmdname}: valor inválido da opção '$1': $2"
fi
else
view="text" && error_msg "${cmdname}: opção '$1' requer um argumento\nExperimente \"${cmdname} --help\" para mais informações."
fi
;;
-j | --jdk)
if [ ! -z $2 ]
then
jdk=$2
shift 2
else
view="text" && error_msg "${cmdname}: opção '$1' requer um argumento\nExperimente \"${cmdname} --help\" para mais informações."
fi
;;
--no-check-conn)
checkconn="false"
shift
;;
--no-install-jdk)
installjdk="false"
shift
;;
--no-install-netbeans)
installnetbeans="false"
shift
;;
--help)
usage
exit 0
;;
*)
view="text" && error_msg "${cmdname}: opção não reconhecida '$1'\nExperimente \"${cmdname} --help\" para mais informações."
;;
esac
done
if [ -z $view ]
then
if [[ $(tty) = /dev/tty[1-6] ]] || [[ $(tty) = /dev/vc/[1-6] ]]
then
view="text"
else
if [ ! -z $(which zenity 2> /dev/null) ]
then
view="zenity"
else
view="text"
fi
fi
else
if [ $view = "zenity" ]
then
if [[ $(tty) = /dev/tty[1-6] ]] || [[ $(tty) = /dev/vc/[1-6] ]]
then
view="text" && error_msg "${cmdname}: o modo '$view' não pode ser usada num console"
else
if [ -z $(which zenity 2> /dev/null) ]
then
view="text" && error_msg "Você não possui o comando 'zenity' instalado"
fi
fi
fi
fi
license
check_perm
[ -z $checkconn ] && check_conn
check_dist
[ -z $installjdk ] && {
check_jdk
install_jdk
}
[ -z $installnetbeans ] && {
check_version
install_netbeans
}
exit 0
Script para atualização de sistemas Debian, Ubuntu e variáveis.
Font Installer v1.0 - Instalação de Fontes no Sistema
Script para adicionar bordas às imagens de uma pasta
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Mint Xfce não mantém a conexão no wi-fi (2)
Problemas com Driver NVIDIA (5)
Warcraft II Remastered no Linux? (8)









