diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..2241170c61de3173bd236ee7df4da2dd1e7ff44f --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,8 @@ +debian-test: + tags: + - debian + script: + - echo "Excluindo arquivo de pacotes" + - rm debian-based/packages.txt + - ./debian-based/install.sh -l + - ./debian-based/install.sh -f diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000000000000000000000000000000000..afb6c8960995317fa09f31457c3d2bf959e06a25 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,7 @@ +# CONTRIBUIÇÕES + +Adicione pacotes que não tenham sido lembrados aqui e outros pacotes opcionais. + +Para distribuições baseadas no debian, altere o arquivo debian-based/packages.txt seguindo o padrão "regra: pacote1 pacote2". + +Para distribuições baseadas do arch, altere o arquivo arch-based/Makefile criando uma novo regra e inserindo o comando de instalação com os pacotes. diff --git a/README.md b/README.md index 02e67abcf0865aaab54206a78e4fc4d82c2f70c1..3a14a056772a0a30979c21f919ed2c79c387b22c 100644 --- a/README.md +++ b/README.md @@ -9,13 +9,22 @@ Após formatar uma máquina, baixe o makefile de acordo com gerenciador de pacot **Instale:** Debian based -`wget https://gitlab.c3sl.ufpr.br/pet/Install/raw/master/debian-based/Makefile; make` +``` +wget https://gitlab.c3sl.ufpr.br/pet/Install/raw/master/debian-based/install.sh +./install.sh -f +``` -Arch Based +Arch based `wget https://gitlab.c3sl.ufpr.br/pet/Install/raw/master/arch-based/Makefile; make` ### Exemplo + +**Debian based** + +`./install.sh --fresh-install` +`./install.sh editors ruby ssh` + +**Arch based** + `make fresh-install` `make editors` -## Contribuição -Adicione pacotes que não tenham sido lembrados aqui e outros pacotes opcionais. \ No newline at end of file diff --git a/debian-based/Makefile b/debian-based/Makefile deleted file mode 100644 index 12d7c889549109f038c0abbc20fe13456f129e32..0000000000000000000000000000000000000000 --- a/debian-based/Makefile +++ /dev/null @@ -1,35 +0,0 @@ -fresh-install: update install - -update: - sudo apt-get update - sudo apt-get upgrade -y - -install: ssh php mysql php-mysql ruby nodejs git editors openjdk xchmn latex curl - -ssh: - sudo apt-get install -y openssh-client openssh-server -php: - sudo apt-get install -y php5 -mysql: - sudo apt-get install -y mysql-client mysql-server -php-mysql: php mysql - -ruby: - sudo apt-get install -y ruby-full -nodejs: - sudo apt-get install -y nodejs npm -git: - sudo apt-get install -y git -editors: - sudo apt-get install -y vim gedit -openjdk: - sudo apt-get install -y openjdk-7-jre openjdk-7-jdk default-jdk default-jre -flash: - sudo apt-get install -y pepperflashplugin-nonfree -xchm: - sudo apt-get install -y xchm -latex: - sudo apt-get install -y texlive-full kile -curl: - sudo apt-get install -y curl - diff --git a/debian-based/install.sh b/debian-based/install.sh new file mode 100755 index 0000000000000000000000000000000000000000..1bce3255a89548e171dfe765f65786e2ae5bd5ca --- /dev/null +++ b/debian-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 apt-get update") + $(echo "$ROOT apt-get 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 apt-get 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-client openssh-server\n" + packages="${packages}php:php5 php5-mysql php5-pgsql php5-sqlite\n" + packages="${packages}mysql:mysql-client mysql-server\n" + packages="${packages}nodejs:nodejs npm\n" + packages="${packages}git:git\n" + packages="${packages}editors:vim gedit\n" + packages="${packages}openjdk:openjdk-7-jre openjdk-7-jdk default-jdk default-jre\n" + packages="${packages}xchm:xchm\n" + packages="${packages}latex:texlive-full 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 apt-get install -y $PACKAGES") +else + help +fi diff --git a/debian-based/packages.txt b/debian-based/packages.txt new file mode 100644 index 0000000000000000000000000000000000000000..5673e0a53533a7dcbe5793bc2bbe917922242dbc --- /dev/null +++ b/debian-based/packages.txt @@ -0,0 +1,11 @@ +ssh:openssh-client openssh-server +php:php5 php5-mysql php5-pgsql php5-sqlite +mysql:mysql-client mysql-server +nodejs:nodejs npm +git:git +editors:vim gedit +openjdk:openjdk-7-jre openjdk-7-jdk default-jdk default-jre +xchm:xchm +latex:texlive-full kile +curl:curl +make:make diff --git a/packages.txt b/packages.txt new file mode 100644 index 0000000000000000000000000000000000000000..c0e20c68fc5aabd4d118dec319cf392278ebe4e6 --- /dev/null +++ b/packages.txt @@ -0,0 +1 @@ +ssh:openssh-client openssh-server php:php5 php5-mysql php5-pgsql php5-sqlite mysql:mysql-client mysql-server nodejs:nodejs npm git:git editors:vim gedit openjdk:openjdk-7-jre openjdk-7-jdk default-jdk default-jre flash:pepperflashplugin-nonfree xchm:xchm latex:texlive-full kile curl:curl make:make