From 3b76f5c735a5dc51c12a05b0b8314b811ede863d Mon Sep 17 00:00:00 2001 From: Gabriel Olescki <go15@inf.ufpr.br> Date: Mon, 12 Dec 2016 11:06:35 -0200 Subject: [PATCH] =?UTF-8?q?Vers=C3=A3o=20para=20distribui=C3=A7=C3=B5es=20?= =?UTF-8?q?baseadas=20em=20fedora=20(tem=20que=20testar=20mais)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fedora-based/install.sh | 104 ++++++++++++++++++++++++++++++++++++++ fedora-based/packages.txt | 11 ++++ 2 files changed, 115 insertions(+) create mode 100755 fedora-based/install.sh create mode 100644 fedora-based/packages.txt diff --git a/fedora-based/install.sh b/fedora-based/install.sh new file mode 100755 index 0000000..4c424f7 --- /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 0000000..fed2b9d --- /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 -- GitLab