#! /bin/sh DEFAULT_REPO=git@bitbucket.org:guideinvestimentos/rails_defaults.git STRICT=${1:-no} ONE_WEEK_AGO=$(( $(date +%s) - 604800 )) if [ -f .rubocop.base.yml ]; then FILE_TIME=$(date -r .rubocop.base.yml +%s) fi info(){ printf "\033[34;1m$1\033[0m\n" } step(){ printf " - $1: \0337\n" } success(){ printf "\0338\033[1A\033[32;1mOK!\033[0m\n\033[2K" } skipped(){ printf "\0338\033[1A\033[33;1mSKIPPED ($1)\033[0m\n\033[2K" } error() { printf "\0338\033[1A\033[31;1mERRO!\033[0m\n\033[2K" printf "\033[31m $1\033[0m\n" [ $STRICT -eq "--strict" ] && exit $2 } info "Configurando o projeto\n" step "Atualizando configuração base do Rubocop" if [ ${FILE_TIME:-0} -lt $ONE_WEEK_AGO ]; then RUBOCOP_FILE=$(git archive --remote=$DEFAULT_REPO HEAD .rubocop.yml 2> /dev/null | tar xO 2> /dev/null) if [ -z "$RUBOCOP_FILE" ]; then error "Não foi possível baixar o arquivo de configuração" 1 else echo "$RUBOCOP_FILE" > .rubocop.base.yml success fi else skipped "Arquivo recente" fi step "Instalando dependências" bundle check 2>&1 > /dev/null && skipped "up-to date" || { RESULT=$(bundle install 2>&1 > /dev/null) [ $? -eq "0" ] && success || error "$RESULT" 2 } info "\nConfiguração executada com sucesso"