#! /bin/sh DEFAULT_REPO=git@bitbucket.org:guideinvestimentos/rails_defaults.git STRICT=${1:-no} ONE_WEEK_AGO=$(( $(date +%s) - 604800 )) FILE_TIME=$(date +%s -r .rubocop.base.yml 2> /dev/null) info(){ echo -e "\\e[34;1m$1\\e[0m" } step(){ printf "- $1: \\e7\n" } success(){ printf "\\e8\\e[32;1mOK!\\e[0m\n\\e[2K" } skipped(){ printf "\\e8\\e[33;1mSKIPPED ($1)\\e[0m\n\\e[2K" } error() { printf "\\e8\\e[31;1mERRO!\\e[0m\n\\e[2K" printf "\\e[31m $1\\e[0m\n" [ $STRICT == "--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) [ $? == 0 ] && success || error "$RESULT" 2 } info "\nConfiguração executada com sucesso"