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