diff --git a/fedora-based/install.sh b/fedora-based/install.sh new file mode 100755 index 0000000000000000000000000000000000000000..4c424f78a4f9c388bf13a9927da09adaf0974853 --- /dev/null +++ b/fedora-based/install.sh @@ -0,0 +1,104 @@ +#!/bin/bash + +PACKAGES= +RUBY_VERSION=2.3.0 +ABSOLUTE_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +#Checa se o usuário é root +if [[ $EUID -ne 0 ]] +then + ROOT="sudo" +else + ROOT= +fi + +#Ruby precisa de uma função especial para ser instalado através do RVM +function ruby { + gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 + curl -sSL https://get.rvm.io | bash -s stable + source $HOME/.rvm/scripts/rvm + rvm install $RUBY_VERSION +} + +function update { + $(echo "$ROOT dnf update") + $(echo "$ROOT dnf upgrade -y") +} + +#Instala todos os pacotes no arquivo packages +function install { + PACKAGES=$(cat "$ABSOLUTE_PATH/packages.txt" | cut -d: -f2 | tr '\r\n' ' ') +} + +function fresh-install { + update + install + $(echo "$ROOT dnf install -y $PACKAGES") +} + +function list { + cat "$ABSOLUTE_PATH/packages.txt" | tr ':' '\t' +} + +function help { + echo "$(basename "$0") [-f|--fresh-install] [-h|--help] [-l|--list] (pacotes) -- Utilize para instalar pacotes na sua máquina" + echo + echo "onde:" + echo " -h mostra a ajuda e sai" + echo " -f instala todos os pacotes da lista" + echo " -l lista os pacotes disponÃveis" + echo "exemplo de uso:" + echo " $(basename "$0") php mysql ruby" + echo "AVISO: por padrão, o ruby não é instalado. Para instalar, execute $(basename "$0") ruby" +} + +#Se o arquivo não existe, o script cria +if [ ! -f "$ABSOLUTE_PATH/packages.txt" ] +then + packages="ssh:openssh openssh-server\n" + packages="${packages}php:php php-mysql php-pgsql\n" + packages="${packages}mysql:mysql\n" + packages="${packages}nodejs:nodejs npm\n" + packages="${packages}git:git\n" + packages="${packages}editors:vim gedit\n" + packages="${packages}openjdk:java-1.8.0-openjdk\n" + packages="${packages}xchm:xchm\n" + packages="${packages}latex:texlive kile\n" + packages="${packages}curl:curl\n" + packages="${packages}make:make\n" + + echo -e $packages > "$ABSOLUTE_PATH/packages.txt" +fi +while [[ $# > 0 ]] +do + key="$1" + case $key in + -f|--fresh-install) + fresh-install + exit 0 + ;; + -h|--help) + help + exit 0 + ;; + -l|--list) + list + exit 0 + ;; + ruby) + ruby + ;; + *) + #concatena na lista de pacotes as regras passadas por parâmetro + PACKAGES="$(cat "$ABSOLUTE_PATH/packages.txt" | grep $key | cut -d: -f2) $PACKAGES" + ;; + esac + shift +done +#Checa se a string não está vazia +if [ ! -z "${PACKAGES// }" ] +then + $(echo "$ROOT dnf install -y $PACKAGES") +else + help +fi diff --git a/fedora-based/packages.txt b/fedora-based/packages.txt new file mode 100644 index 0000000000000000000000000000000000000000..fed2b9d34e3e06b87f773e681df6510ef652bad8 --- /dev/null +++ b/fedora-based/packages.txt @@ -0,0 +1,11 @@ +ssh:openssh openssh-server +php:php php-mysql php-pgsql +mysql:mysql +nodejs:nodejs npm +git:git +editors:vim gedit +openjdk:java-1.8.0-openjdk +xchm:xchm +latex:texlive kile +curl:curl +make:make \ No newline at end of file