Instalando a ķltima vers„o estŠvel do Eclipse com uma ķnica linha

Publicado por William da Costa Canin (ķltima atualizaÁ„o em 27/08/2015)

[ Hits: 2.117 ]

Homepage: https://williamcanin.github.io

Download eclipse.sh




Olá "linuxers", estou aqui para compartilhar com vocês um script (Shell) que criei para descarregar e instalar a SEMPRE a última versão do Eclipse estável, ou seja, o script tem a função de pegar o último codenome e a última release estável do Eclipse, por exemplo: Mars/R.

Resolvi criar esse script, porque o Eclipse é apenas extrair e usar no GNU/Linux, deixando sua "instalação" meio chocho (onde eu tirei essa palavra na minha mente?), sem um atalho em "/usr/share/applications", não cria link simbólico na pasta "bin", e ter aquele "trabalhinho" de ficar entrando no site do Eclipse, para baixar a última versão (caso não queira atualizar a versão que já possuí). Tudo bem, você pode fazer tudo isso manualmente, mas um script que faz isso com apenas uma linha de comando é bem melhor, seja qual for sua distribuição.

O script está armazenado no meu Gist do GitHub, e isso possibilita de utilizar uma única linha para fazer todo processo, através do cURL com opção "L".

Para fazer o download e instalação da última versão do Eclipse com uma única linha de comando, acesse o script no meu Gist (no final do texto) e na descrição do script, tem a forma de instalação utilizando o cURL e outros comentários.

Agora se quer realizar o download do script para rodar localmente, você pode, ele tem essa opção, irei disponibilizar aqui, mas logo aviso: "O SCRIPT PODE FICAR OBSOLETO AQUI", caso eu queira modificá-lo no Gist ou algum amigo dê dicas para modificá-lo, pois eu uso mais Gist.

Se você for baixar e usar o script localmente, você terá que alterar o parâmetro da função "_RUN_OPTION" para "local", assim você terá o menu de instalar (-install) e desinstalar (-uninstall) habilitado no script. Caso deixe como está, ao executar o script ele irá fazer o download e instalar automaticamente e não entrará no menu.

Nota: coloquei essa função "_RUN_OPTION" com opção de usar (ou não) menu do script, porque como o script está armazenado no Gist, o "curl -L" não aceita a utilização de menu. O script usa o "sudo" então seu usuário terá que estar no /etc/sudoers.

Gist do script (link encurtado): http://git.io/v3Fe9

Meu Gist: https://gist.github.com/williamcanin

  



Esconder cůdigo-fonte

#!/bin/bash

††††††††# Type script: Shell
††††††††# Program: Eclipse {Lastet version <present>}
††††††††# Description: Installing the latest version of Eclipse on Linux,
††††††††#††††††††††††††as shortcut creations and symbolic links
††††††††# Version: 1.0.1
††††††††#
††††††††#--------------------------------------------------------------------------------------------
††††††††# Author: William C. Canin <http://williamcanin.com, https://github.com/williamcanin>
††††††††# LICENSE: MIT
††††††††# The MIT License (MIT)
††††††††# Copyright (c) 2015 William C. Canin
††††††††#
††††††††# Permission is hereby granted, free of charge, to any person obtaining a copy
††††††††# of this software and associated documentation files (the "Software"), to deal
††††††††# in the Software without restriction, including without limitation the rights
††††††††# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
††††††††# copies of the Software, and to permit persons to whom the Software is
††††††††# furnished to do so, subject to the following conditions:

††††††††# The above copyright notice and this permission notice shall be included in all
††††††††# copies or substantial portions of the Software.

††††††††# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
††††††††# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
††††††††# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
††††††††# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
††††††††# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
††††††††# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
††††††††# SOFTWARE.
††††††††#--------------------------------------------------------------------------------------------


#====================================================================================================
#†† Begin Script
#====================================================================================================
#
#
# ---------------------------------------------------------------------------------------------------
#†† Begin variables global
#----------------------------------------------------------------------------------------------------
#
############ Variables changeable
#
# Set the directory where Eclipse is installed.
INSTALLATION_DIR="/opt"
#---------------------------------------------
#
# ------------- BASE MIRRORS -----------------
# Choice base mirror {Only one}
#
# Base mirror - Brazil - C3SL - Federal University of Parana (http)
BASE_MIRROR="http://eclipse.c3sl.ufpr.br"
# Base mirror - United States - Columbia University
# BASE_MIRROR="http://mirror.cc.columbia.edu/pub/software/eclipse"
# Base mirror - Germany - University of Erlangen-Nuremberg
# BASE_MIRROR="http://ftp.fau.de/eclipse"
#
############ Variables NOT changeable
#
#
if [ "$(uname -m)" = "x86_64" ]; then

††ARCHITECTURE="x86_64"
††ARCHITECTURE_PI="x86_64"

else

††ARCHITECTURE=""
††ARCHITECTURE_PI="i386"

fi
DISTRIBUTION="$(cat /etc/[A-Za-z]*[_-][rv]e[lr]* 2> /dev/null | grep PRETTY_NAME | awk -F"=" '{print$2}')"
DOWN_ICON_SVG="https://raw.githubusercontent.com/williamcanin/logos/master/logos/eclipse.svg"
DIR_SHORTCUT="/usr/share/applications"
SHORTCUT_NAME="eclipse.desktop"
URL_RELEASE_CODENAME="$BASE_MIRROR/technology/epp/downloads/release/release.xml"
VERIFY_CODENAME="$(curl -s $URL_RELEASE_CODENAME | sed '/<present>/,$!d' | sed 's/<present>//g' | sed 's/<\/present>//g' | sed '/</d' | cut -d'/' -f1)"
VERIFY_CODENAME_CAPITALIZE="$(curl -s $URL_RELEASE_CODENAME | sed '/<present>/,$!d' | sed 's/<present>//g' | sed 's/<\/present>//g' | sed '/</d' | cut -d'/' -f1 | sed -r 's/(^.| .)/\U&/g')"
VERIFY_RELEASE="$(curl -s $URL_RELEASE_CODENAME | sed '/<present>/,$!d' | sed 's/<present>//g' | sed 's/<\/present>//g' | sed '/</d' | cut -d'/' -f2)"
BASE_URL_PKG="$BASE_MIRROR/technology/epp/downloads/release"
NAME_DEFAULT_ECLIPSE="eclipse-jee"
OS="linux"
CONFIG="config.lib"
LIB_MSGS="messages_color.lib"
PROGRESS_PERCENT_LIB="progress_percent.lib"
ACTION_SETTINGS_DIR="$HOME/.eclipse_confs"
ACTION_SETTINGS_FILE_INSTALL="action_settings_install.sh"
ACTION_SETTINGS_FILE_UNINSTALL="action_settings_uninstall.sh"
EXTENSION="tar.gz"
PKGNAME_FULL="$NAME_DEFAULT_ECLIPSE-$VERIFY_CODENAME-$VERIFY_RELEASE-$OS-gtk-$ARCHITECTURE.$EXTENSION"
FOLDER_ECLIPSE_DEFAULT="eclipse"
FOLDER_ECLIPSE_CHANGED="$INSTALLATION_DIR/$NAME_DEFAULT_ECLIPSE-$VERIFY_CODENAME-$VERIFY_RELEASE-$OS-gtk-$ARCHITECTURE"
EXEC="$FOLDER_ECLIPSE_CHANGED/eclipse"
LINK_SIMBOLIC_EXEC="/usr/bin/eclipse"
URLPKG="$BASE_URL_PKG/$VERIFY_CODENAME/$VERIFY_RELEASE/$NAME_DEFAULT_ECLIPSE-$VERIFY_CODENAME-$VERIFY_RELEASE-$OS-gtk-$ARCHITECTURE.$EXTENSION"
#
#
#----------------------------------------------------------------------------------------------------
#†† End variables global
#----------------------------------------------------------------------------------------------------


#----------------------------------------------------------------------------------------------------
#†† Begin functions
#----------------------------------------------------------------------------------------------------
#


function _CREATE_DIR_ACTION_SETTINGS(){

††††if [[ ! -d "$ACTION_SETTINGS_DIR" ]]; then
††††††††mkdir $ACTION_SETTINGS_DIR
††††fi

}

function _RUN_OPTION(){

††††if [[ "$1" = "gist" ]]; then
††††††††_ACTION_SETTINGS

††††††††_DOWNLOAD_INSTALL

††††elif [[ "$1" = "local" ]]; then
††††††††printf "\n"
††††††††printf "Using: $0 { -install | -uninstall }\n"
††††††††printf "\n"
††††else
††††††††printf "\n"
††††††††printf "Option invalid!\n"
††††††††printf "\n"
††††fi
}

function _CREATE_LIBS(){

_CREATE_DIR_ACTION_SETTINGS

/bin/cat << EOF > $ACTION_SETTINGS_DIR/$LIB_MSGS
NONE='\033[00m'
RED='\033[01;31m'
BLUE='\e[34m'
GREEN='\033[01;32m'
YELLOW='\033[01;33m'
PURPLE='\033[01;35m'
CYAN='\033[01;36m'
WHITE='\033[01;37m'
BOLD='\033[1m'
UNDERLINE='\033[4m'

WARNING_MSG="\${YELLOW}[ Warning ]\${NONE}"
ERROR_MSG="\${RED}[ Error ]\${NONE}"
INFO_MSG="\${BLUE}[ Info ]\${NONE}"
OK_MSG="\${GREEN}[ Ok ]\${NONE}"
EOF

/bin/cat << EOF > $ACTION_SETTINGS_DIR/$CONFIG
DOWNLOAD_VALUE="uncompleted"
SUDO_VALUE_INSTALL="null"
SUDO_VALUE_UNINSTALL="null"
EOF

/bin/cat << EOF > $ACTION_SETTINGS_DIR/$PROGRESS_PERCENT_LIB
# Colors
NONE='\033[00m'
RED='\033[01;31m'
BLUE='\e[34m'
GREEN='\033[01;32m'
YELLOW='\033[01;33m'
CYAN='\033[01;36m'
WHITE='\033[01;37m'
BOLD='\033[1m'
MOVE_CURSOR_LEFT4="\033[4D"

function _PROGRESS_PERCENT_FUNCTION(){

††††BEGIN_PERCENT=\$1
††††END_PERCENT=\$2
††††SECONDS=\$3
††††PROGRESS=\$END_PERCENT/\$SECONDS
††††tput civis
††††printf "\n"
††††printf "\$4\n"
††††for (( i=\$BEGIN_PERCENT; i<=\$END_PERCENT ; i=\$i+\$PROGRESS )); do
††††††††printf "\${MOVE_CURSOR_LEFT4}\${YELLOW}\${BOLD}\$i\${NONE}"
††††††††echo -ne "\${YELLOW}%\${NONE}"
††††††††sleep 1
††††done
††††tput cnorm
††††printf "\${MOVE_CURSOR_LEFT4}"
††††printf "\${YELLOW}\$END_PERCENT%%\${NONE}"
††††printf "\012\012"

}
EOF

}
_CREATE_LIBS


function _LOAD_LIBS_LOCAL(){

††††if [[ -f "$ACTION_SETTINGS_DIR/$LIB_MSGS" ]]; then
††††††††source $ACTION_SETTINGS_DIR/$LIB_MSGS
††††fi
††††if [[ -f "$ACTION_SETTINGS_DIR/$CONFIG" ]]; then
††††††††source $ACTION_SETTINGS_DIR/$CONFIG
††††fi
††††if [[ -f "$ACTION_SETTINGS_DIR/$CONFIG" ]]; then
††††††††source $ACTION_SETTINGS_DIR/$PROGRESS_PERCENT_LIB
††††fi

}

function _CREATE_SHORTCUT(){

/bin/cat << EOF > $ACTION_SETTINGS_DIR/$SHORTCUT_NAME
[Desktop Entry]
Type=Application
Version=1.0
Name=Eclipse
GenericName=Eclipse-IDE-$VERIFY_CODENAME_CAPITALIZE
Comment[pt_BR]=IDE Desenvolvimento Java
Comment[en_GB]=IDE Java Development
Exec=$EXEC
Icon=$FOLDER_ECLIPSE_CHANGED/icon.svg
Terminal=false
Categories=GTK;Development;IDE;
StartupNotify=true
EOF

}

function _ACTION_SETTINGS(){

††††_CREATE_DIR_ACTION_SETTINGS
††††_CREATE_LIBS

}

function _PERMISSION_FOLDER_FILE_ECLIPSE(){

††††if [[ "$INSTALLATION_DIR" = "$HOME" ]]; then
††††††††if [[ ! -d "$FOLDER_ECLIPSE_CHANGED"††]]; then
††††††††††††exit 0
††††††††else
††††††††††††sudo chown -R `logname`. $FOLDER_ECLIPSE_CHANGED
††††††††††††sudo chmod -R 777 $FOLDER_ECLIPSE_CHANGED
††††††††fi
††††fi

}

function _DOWNLOAD_INSTALL(){
††††reset
††††_LOAD_LIBS_LOCAL

††††if [[ -d "$FOLDER_ECLIPSE_CHANGED" ]]; then

††††††††printf "\n"
††††††††printf "$WARNING_MSG The Eclipse $VERIFY_CODENAME_CAPITALIZE is already installed\n"
††††††††printf "See where: "
††††††††cd $FOLDER_ECLIPSE_CHANGED && pwd
††††††††printf "\n"

††††else

††††††††for (( i = 0; i < 2; i++ )); do
††††††††††††_LOAD_LIBS_LOCAL
††††††††††††if [[ "$DOWNLOAD_VALUE" = "completed" ]]; then

††††††††††††††††printf "\n"
††††††††††††††††printf "============================================================\n"
††††††††††††††††printf "††††Installing Eclipse $VERIFY_CODENAME_CAPITALIZE in $INSTALLATION_DIR.\n"
††††††††††††††††printf "============================================================\n"
††††††††††††††††printf "\n"
††††††††††††††††printf "You must be ${BLUE}ROOT${NONE} to perform the installation. You need sudo.\n"
††††††††††††††††printf "\n\n"

††††††††††††††††_CREATE_SHORTCUT
††††††††††††††††_PROGRESS_PERCENT_FUNCTION "0" "20" "2" "Starting installation..."
††††††††††††††††sudo -k
††††††††††††††††sudo sed -i "s|^SUDO_VALUE_INSTALL=.*|SUDO_VALUE_INSTALL=\"true\"|g" $ACTION_SETTINGS_DIR/$CONFIG
††††††††††††††††_LOAD_LIBS_LOCAL
††††††††††††††††if [[ "$SUDO_VALUE_INSTALL" != "true"††]]; then
††††††††††††††††††††printf "$ERROR_MSG Installation error because you canceled the sudo process or typed incorrect password.\n"
††††††††††††††††††††printf "Sorryy :(\n"
††††††††††††††††††††printf "\n"
††††††††††††††††††††exit 0
††††††††††††††††else

††††††††††††††††††††sudo tar -xzf $HOME/$PKGNAME_FULL -C $INSTALLATION_DIR
††††††††††††††††††††sudo mv $INSTALLATION_DIR/$FOLDER_ECLIPSE_DEFAULT $FOLDER_ECLIPSE_CHANGED
††††††††††††††††††††sudo curl -so $FOLDER_ECLIPSE_CHANGED/icon.svg $DOWN_ICON_SVG
††††††††††††††††††††sudo chmod -R 755 $FOLDER_ECLIPSE_CHANGED
††††††††††††††††††††sudo ln -s $EXEC $LINK_SIMBOLIC_EXEC
††††††††††††††††††††sudo chmod +x $LINK_SIMBOLIC_EXEC
††††††††††††††††††††sudo mv $ACTION_SETTINGS_DIR/$SHORTCUT_NAME $DIR_SHORTCUT/$SHORTCUT_NAME
††††††††††††††††††††_PROGRESS_PERCENT_FUNCTION "21" "100" "4" "Finishing installation..."

††††††††††††††††††††printf "\n"
††††††††††††††††††††printf "$WARNING_MSG Complete install Eclipse $VERIFY_CODENAME_CAPITALIZE.\n"
††††††††††††††††††††printf "Bye! :)\n"
††††††††††††††††††††printf "\n"
††††††††††††††††fi

††††††††††††††††_PERMISSION_FOLDER_FILE_ECLIPSE

††††††††††††††††_CLEAR
††††††††††††††††break

††††††††††††else
††††††††††††††††printf "\n"
††††††††††††††††printf "===================================\n"
††††††††††††††††printf "††††Process Information\n"
††††††††††††††††printf "===================================\n"
††††††††††††††††printf "\n"
††††††††††††††††printf "${BLUE} Package:${NONE} $PKGNAME_FULL\n"
††††††††††††††††printf "${BLUE} Download directory:${NONE} $BASE_URL_PKG\n"
††††††††††††††††printf "${BLUE} Architecture:${NONE} $ARCHITECTURE_PI\n"
††††††††††††††††printf "${BLUE} Maintainer:${NONE} The Eclipse Foundation\n"
††††††††††††††††printf "${BLUE} Operational system:${NONE} $OS\n"
††††††††††††††††printf "${BLUE} Distribution:${NONE} $DISTRIBUTION\n"
††††††††††††††††printf "${BLUE}${BOLD} Download saving on:${NONE} $HOME\n"
††††††††††††††††printf "\n"
††††††††††††††††printf "\n"
††††††††††††††††printf "===================================\n"
††††††††††††††††printf "††††Download Eclipse $VERIFY_CODENAME_CAPITALIZE.\n"
††††††††††††††††printf "===================================\n"
††††††††††††††††printf "$WARNING_MSG Wait ...\n"
††††††††††††††††printf "\n"
††††††††††††††††curl -C - -o $HOME/$PKGNAME_FULL $URLPKG
††††††††††††††††sed -i "s|^DOWNLOAD_VALUE=.*|DOWNLOAD_VALUE=\"completed\"|g" $ACTION_SETTINGS_DIR/$CONFIG

††††††††††††fi

††††††††done
††††fi
}

function _CLEAR(){
††††# rm -f††$HOME/$PKGNAME_FULL
††††rm -rf $ACTION_SETTINGS_DIR
††††sudo -k
}

function _UNINSTALL(){
††††reset
††††_LOAD_LIBS_LOCAL

††††if [[ ! -d "$FOLDER_ECLIPSE_CHANGED" ]]; then
††††††††printf "\n"
††††††††printf "$WARNING_MSG The Eclipse is not installed.\n"
††††††††printf "It was not installed with this script.\n"
††††††††printf "\n"

††††else

††††††††printf "\n"
††††††††printf "============================================================\n"
††††††††printf "††††Uninstall Eclipse $VERIFY_CODENAME_CAPITALIZE.\n"
††††††††printf "============================================================\n"
††††††††printf "\n"
††††††††printf "$INFO_MSG This will be an irreversible action! You need sudo.\n"
††††††††printf "\n"

††††††††††††††††sudo -k
††††††††††††††††sudo sed -i "s|^SUDO_VALUE_UNINSTALL=.*|SUDO_VALUE_UNINSTALL=\"true\"|g" $ACTION_SETTINGS_DIR/$CONFIG
††††††††††††††††_LOAD_LIBS_LOCAL
††††††††††††††††if [[ "$SUDO_VALUE_UNINSTALL" != "true" ]]; then
††††††††††††††††††††printf "\n"
††††††††††††††††††††printf "$ERROR_MSG Uninstall error because you canceled the sudo process or typed incorrect password.\n"
††††††††††††††††††††printf "Sorry :(\n"
††††††††††††††††††††printf "\n"
††††††††††††††††††††exit 0
††††††††††††††††else
††††††††††††††††††††sudo rm -rf††$FOLDER_ECLIPSE_CHANGED
††††††††††††††††††††sudo rm -f††$LINK_SIMBOLIC_EXEC
††††††††††††††††††††sudo rm -f††$DIR_SHORTCUT/$SHORTCUT_NAME
††††††††††††††††††††_PROGRESS_PERCENT_FUNCTION "0" "100" "2" "Uninstall process: "
††††††††††††††††††††printf "\n"
††††††††††††††††††††printf "$WARNING_MSG Complete uninstall Eclipse $VERIFY_CODENAME_CAPITALIZE.\n"
††††††††††††††††††††printf "Bye! :)\n"
††††††††††††††††††††printf "\n"
††††††††††††††††fi

††††_CLEAR
††††fi


}
#
#----------------------------------------------------------------------------------------------------
#†† End functions
#----------------------------------------------------------------------------------------------------


case "$1" in
††††††-uninstall)

††††††††_ACTION_SETTINGS

††††††††_UNINSTALL
††††††;;
††††††-install)

††††††††_ACTION_SETTINGS

††††††††_DOWNLOAD_INSTALL
††††††;;
††††††*)

††††††††#-----------------------------------------------------------------------
††††††††# Configuration script to run locally
††††††††#-----------------------------------------------------------------------
††††††††#
††††††††# Use the parameter "local" if you want to use this script locally.
††††††††# The advantage of using locally is that you can use the option to
††††††††# install and uninstall.
††††††††#
††††††††#-----------------------------------------------------------------------
††††††††# Configuration to run script via web "Gist" (Curl -L)
††††††††#-----------------------------------------------------------------------
††††††††#
††††††††# Use the parameter "gist" if you want to use this script by Gist.
††††††††# This option will not download the script, however, only porerá
††††††††# use the option to install. The option to uninstall is not available.
††††††††#
††††††††#-----------------------------------------------------------------------
††††††††#
††††††††_RUN_OPTION "gist"


††††††;;
esac
#
#
#----------------------------------------------------------------------------------------------------
#†† End Script††-†† Copyright (c) Script 2015 - William C. Canin <http://github.com/williamcanin>
#====================================================================================================

Scripts recomendados

Configurando um DomŪnio no BIND9 com Debian 3.1

whoUser

Script para autenticaÁ„o Velox Empresarial

Limitando largura de banda com o CBQ

Redund‚ncia de conex„o


  

ComentŠrios

Nenhum comentŠrio foi encontrado.


Contribuir com comentŠrio




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts