Skip to content

Instantly share code, notes, and snippets.

@danielalvarenga
Last active April 8, 2024 09:13
Show Gist options
  • Select an option

  • Save danielalvarenga/29829f997915a00d8f7dda51b8c33df0 to your computer and use it in GitHub Desktop.

Select an option

Save danielalvarenga/29829f997915a00d8f7dda51b8c33df0 to your computer and use it in GitHub Desktop.

Revisions

  1. danielalvarenga revised this gist Oct 2, 2020. 1 changed file with 6 additions and 6 deletions.
    12 changes: 6 additions & 6 deletions script-configure-ubuntu20.04-amd64.sh
    Original file line number Diff line number Diff line change
    @@ -187,8 +187,8 @@ function deletedir {

    function cleanpackages {
    exececho "*** Fix and clean packages"
    execsudo apt -y --fix-broken install
    execsudo apt -y autoremove
    execsudo apt-get -y --fix-broken install
    execsudo apt-get -y autoremove
    execsudo apt-get clean
    }

    @@ -292,9 +292,9 @@ then
    wget https://dl.google.com/go/go$GO_VERSION.linux-amd64.tar.gz
    fi
    execsudo tar -C /usr/local -xzf $GO_FILE
    exececho ''
    exececho '# Add GO lang path environment variable' >> $HOME/.profile
    exececho 'export PATH=$PATH:/usr/local/go/bin' >> $HOME/.profile
    echo '' >> $HOME/.profile
    echo '# Add GO lang path environment variable' >> $HOME/.profile
    echo 'export PATH=$PATH:/usr/local/go/bin' >> $HOME/.profile
    mkdir -p $HOME/go/src
    fi

    @@ -496,7 +496,7 @@ then
    eval "$(rbenv init -)"

    git clone https://github.com/rbenv/ruby-build.git $RUBY_BUILD_DIR
    exececho 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
    echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
    export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"

    exececho "Installing Ruby $RUBY_VERSION"
  2. danielalvarenga revised this gist Oct 2, 2020. 1 changed file with 145 additions and 119 deletions.
    264 changes: 145 additions & 119 deletions script-configure-ubuntu20.04-amd64.sh
    Original file line number Diff line number Diff line change
    @@ -27,13 +27,13 @@ COLORIZE_TERMINAL=false

    # Configure GIT
    CONFIGURE_GITHUB=false
    GITHUB_NAME="Your name that appear in commits"
    GITHUB_MAIL="your_email@any.com"
    GITHUB_USER="your_username"
    GITHUB_NAME="My commit name"
    GITHUB_MAIL="email_in_github@any.com"
    GITHUB_USER="github_username"

    # Docker
    DOCKER=true
    DOCKER_COMPOSE=true
    DOCKER=false
    DOCKER_COMPOSE=false
    DOCKER_COMPOSE_VERSION=1.27.4

    # Java oracle
    @@ -49,33 +49,33 @@ GO_VERSION=1.15.2

    # Install Node, npm
    # https://github.com/nodesource/distributions/blob/master/README.md#debinstall
    NODEJS=true
    NODEJS=false
    NODEJS_VERSION=lts # use "lts", "current" or the number of version

    YARN=true
    YARN=false

    # Ruby
    RUBY=false
    RUBY_VERSION=2.7.2
    RUBY_VERSION=2.7.1
    RUBY_VERSION_PATH=2.7
    RUBY_VERSION_MANAGER=RBENV # Use RVM or RBENV or false to source instalation
    RAILS=false
    RAILS_VERSION=6.0.3.3

    # Terminal text editor
    VIM=true
    VIM=false

    # Visual studio code ide
    VISUAL_STUDIO_CODE=false

    # For files compression
    COMPRESS_7ZIP=true
    COMPRESS_7ZIP=false

    # Image editor
    GIMP=true
    GIMP=false

    # Player and codecs
    VLC=true
    VLC=false

    # qBitTorrent
    TORRENT=false
    @@ -87,7 +87,7 @@ SPOTIFY=false
    TERMINATOR=false

    # Partitions manager
    GPARTED=true
    GPARTED=false

    # Rest api simulations
    POSTMAN=false
    @@ -96,7 +96,7 @@ POSTMAN=false
    SKYPE=false

    # Google chrome web browser
    GOOGLE_CHROME=true
    GOOGLE_CHROME=false

    # Database sqlite
    SQLITE=false
    @@ -125,7 +125,7 @@ MYSQL_PASSWORD=root
    WORKBENCH=false

    # Manage extra options for mouse, keyboard and other resources of ubuntu
    TWEAKS=true
    TWEAKS=false


    # Paths
    @@ -146,6 +146,11 @@ function exececho {
    echo "$@" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    }

    function exececho2 {
    echo "$@"
    exececho "$@"
    }

    function dpkginstall {
    exececho "*** Installing package $1"
    shift
    @@ -175,6 +180,18 @@ function deletefile {
    if [ -f "$@" ]; then execsudo rm "$@"; fi;
    }

    function deletedir {
    exececho "*** Removing folder $@"
    if [ -d "$@" ]; then execsudo rm -rf "$@"; fi;
    }

    function cleanpackages {
    exececho "*** Fix and clean packages"
    execsudo apt -y --fix-broken install
    execsudo apt -y autoremove
    execsudo apt-get clean
    }


    deletefile $LOG_SCRIPT
    touch $LOG_SCRIPT
    @@ -293,8 +310,8 @@ fi

    if ( $YARN || $RUBY )
    then
    curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
    exececho "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
    curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | execsudo apt-key add -
    echo "deb https://dl.yarnpkg.com/debian/ stable main" | execsudo tee /etc/apt/sources.list.d/yarn.list
    execsudo apt-get update
    aptinstall Yarn yarn
    yarn -v
    @@ -411,6 +428,7 @@ fi

    if $MYSQL
    then
    uninstallmysql
    execsudo debconf-set-selections <<< "mysql-server mysql-server/root_password password $MYSQL_USER"
    execsudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $MYSQL_PASSWORD"
    aptinstall MySQL mysql-server mysql-client libmysqlclient-dev
    @@ -427,10 +445,12 @@ fi

    if $WORKBENCH
    then
    exececho "*** installing Workbench"
    cleanpackages
    aptinstall "Workbench dependencies" mysql-client libmysqlclient-dev libatkmm-1.6-1v5 libcairomm-1.0-1v5 libglibmm-2.4-1v5 libgtkmm-3.0-1v5 libpangomm-1.4-1v5 libsigc++-2.0-0v5 libssl-dev libssl1.1 libproj-dev

    exececho "*** Installing Workbench"
    cd $DOWNLOADS

    aptinstall "Workbench dependencies" libctemplate2v5 libgeos-3.5.0 libgeos-c1v5 libhdf4-0-alt libaec0 libsz2 libhdf5-10 libnetcdf11 libpcrecpp0v5 libpq5 libtinyxml2.6.2v5 libzip4 python-crypto python-six python-ecdsa python-paramiko


    WORKBENCH_FILE=$DOWNLOADS/mysql-workbench-community_8.0.21-1ubuntu20.04_amd64.deb
    if [ -f $WORKBENCH_FILE ]
    @@ -442,17 +462,16 @@ then
    dpkginstall Workbench $WORKBENCH_FILE
    fi


    if $RUBY
    then
    aptinstall "Ruby/Rails dependences: zlib1g-dev libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev" zlib1g-dev libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev

    exececho "*** Git, NodeJS and Yarn are dependences of rails and also were installed." >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    cd
    aptinstall "Ruby on Rails dependences" git-core zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev nodejs yarn

    if [ $RUBY_VERSION_MANAGER == "RVM" ]
    then
    exececho "installing RVM with RUBY $RUBY_VERSION"
    if ! type rvm >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT; then
    cd
    aptinstall "RVM dependencies" libgdbm-dev libncurses5-dev automake libtool bison libffi-dev
    gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
    curl -sSL https://get.rvm.io | bash -s stable
    @@ -465,32 +484,23 @@ then

    elif [ $RUBY_VERSION_MANAGER == "RBENV" ]
    then
    exececho "installing Rbenv with Ruby $RUBY_VERSION"
    exececho "Installing Rbenv"
    aptinstall "Rbenv dependencies" autoconf bison libssl-dev libyaml-dev libreadline-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev
    if [ -d $RBENV_DIR ]
    then
    cd $RBENV_DIR
    git pull
    else
    git clone https://github.com/rbenv/rbenv.git $RBENV_DIR
    exececho 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
    exececho 'eval "$(rbenv init -)"' >> ~/.bashrc
    export PATH="$HOME/.rbenv/bin:$PATH"
    eval "$(rbenv init -)"
    fi
    if [ -d $RUBY_BUILD_DIR ]
    then
    cd $RUBY_BUILD_DIR
    git pull
    else
    git clone https://github.com/rbenv/ruby-build.git $RUBY_BUILD_DIR
    exececho 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
    export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"
    cd $RUBY_BUILD_DIR
    ./install.sh
    fi
    source ~/.bashrc
    rbenv install $RUBY_VERSION -s

    deletedir $RBENV_DIR

    git clone https://github.com/rbenv/rbenv.git $RBENV_DIR
    echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
    echo 'eval "$(rbenv init -)"' >> ~/.bashrc
    export PATH="$HOME/.rbenv/bin:$PATH"
    eval "$(rbenv init -)"

    git clone https://github.com/rbenv/ruby-build.git $RUBY_BUILD_DIR
    exececho 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
    export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"

    exececho "Installing Ruby $RUBY_VERSION"
    rbenv install $RUBY_VERSION -s >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    rbenv global $RUBY_VERSION


    @@ -515,7 +525,7 @@ then

    ruby -v

    exececho installing Bundler
    exececho "Installing Bundler"
    exececho "gem: --no-ri --no-rdoc" > ~/.gemrc
    gem install bundler -N >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT

    @@ -547,95 +557,111 @@ fi

    if $COLORIZE_TERMINAL
    then
    exececho -e "" >> $BASHRC
    exececho -e "# Colorize terminal" >> $BASHRC
    exececho -e "function parse_git_branch () {" >> $BASHRC
    exececho -e " git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'" >> $BASHRC
    exececho -e "}" >> $BASHRC
    exececho -e 'RED="\[\033[01;31m\]"' >> $BASHRC
    exececho -e 'YELLOW="\[\033[01;33m\]"' >> $BASHRC
    exececho -e 'GREEN="\[\033[01;32m\]"' >> $BASHRC
    exececho -e 'BLUE="\[\033[01;34m\]"' >> $BASHRC
    exececho -e 'NO_COLOR="\[\033[00m\]"' >> $BASHRC
    echo -e "" >> $BASHRC
    echo -e "# Colorize terminal" >> $BASHRC
    echo -e "function parse_git_branch () {" >> $BASHRC
    echo -e " git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'" >> $BASHRC
    echo -e "}" >> $BASHRC
    echo -e 'RED="\[\033[01;31m\]"' >> $BASHRC
    echo -e 'YELLOW="\[\033[01;33m\]"' >> $BASHRC
    echo -e 'GREEN="\[\033[01;32m\]"' >> $BASHRC
    echo -e 'BLUE="\[\033[01;34m\]"' >> $BASHRC
    echo -e 'NO_COLOR="\[\033[00m\]"' >> $BASHRC

    if $WITH_HOST
    then
    exececho -e 'PS1="$GREEN\u@\h$NO_COLOR:$BLUE\w$YELLOW\$(parse_git_branch)$NO_COLOR\$ "' >> $BASHRC
    echo -e 'PS1="$GREEN\u@\h$NO_COLOR:$BLUE\w$YELLOW\$(parse_git_branch)$NO_COLOR\$ "' >> $BASHRC
    else
    exececho -e 'PS1="$GREEN\u$NO_COLOR:$BLUE\w$YELLOW\$(parse_git_branch)$NO_COLOR\$ "' >> $BASHRC
    echo -e 'PS1="$GREEN\u$NO_COLOR:$BLUE\w$YELLOW\$(parse_git_branch)$NO_COLOR\$ "' >> $BASHRC
    fi

    source $BASHRC
    fi


    exececho "*** Clean packages"
    execsudo apt-get clean
    cleanpackages


    if $CONFIGURE_GITHUB
    then
    execsudo rm $GITCONFIG
    deletefile $GITCONFIG
    execsudo touch $GITCONFIG
    execsudo chmod 777 $GITCONFIG
    exececho -e "[user]" >> $GITCONFIG
    exececho -e " name = $GITHUB_NAME" >> $GITCONFIG
    exececho -e " email = $GITHUB_MAIL" >> $GITCONFIG
    exececho -e "[core]" >> $GITCONFIG
    exececho -e " editor = vim -f" >> $GITCONFIG
    exececho -e "[alias]" >> $GITCONFIG
    exececho -e " df = diff" >> $GITCONFIG
    exececho -e " st = status" >> $GITCONFIG
    exececho -e " cm = commit" >> $GITCONFIG
    exececho -e " ch = checkout" >> $GITCONFIG
    exececho -e " br = branch" >> $GITCONFIG
    exececho -e " lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative" >> $GITCONFIG
    exececho -e " ctags = !.git/hooks/ctags" >> $GITCONFIG
    exececho -e "[color]" >> $GITCONFIG
    exececho -e " branch = auto" >> $GITCONFIG
    exececho -e " diff = auto" >> $GITCONFIG
    exececho -e " grep = auto" >> $GITCONFIG
    exececho -e " interactive = auto" >> $GITCONFIG
    exececho -e " status = auto" >> $GITCONFIG
    exececho -e " ui = 1" >> $GITCONFIG
    exececho -e "[branch]" >> $GITCONFIG
    exececho -e " autosetuprebase = always" >> $GITCONFIG
    exececho -e "[github]" >> $GITCONFIG
    exececho -e " user = $GITHUB_USER" >> $GITCONFIG

    ssh-keygen -t rsa -b 4096 -C "$GITHUB_MAIL" -N "" -f $SSH_FOLDER/id_rsa_github
    exececho ""
    exececho ""
    exececho "**********************"
    exececho "CONFIGURE GIT USER"
    exececho ""
    exececho "Adicione a public ssh key em 'https://github.com/settings/ssh':"
    exececho ""
    cat $SSH_FOLDER/id_rsa_github.pub
    exececho ""
    exececho "**********************"

    echo -e "[user]" >> $GITCONFIG
    echo -e " name = $GITHUB_NAME" >> $GITCONFIG
    echo -e " email = $GITHUB_MAIL" >> $GITCONFIG
    echo -e "[core]" >> $GITCONFIG
    echo -e " editor = vim -f" >> $GITCONFIG
    echo -e "[alias]" >> $GITCONFIG
    echo -e " df = diff" >> $GITCONFIG
    echo -e " st = status" >> $GITCONFIG
    echo -e " cm = commit" >> $GITCONFIG
    echo -e " ch = checkout" >> $GITCONFIG
    echo -e " br = branch" >> $GITCONFIG
    echo -e " lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative" >> $GITCONFIG
    echo -e " ctags = !.git/hooks/ctags" >> $GITCONFIG
    echo -e "[color]" >> $GITCONFIG
    echo -e " branch = auto" >> $GITCONFIG
    echo -e " diff = auto" >> $GITCONFIG
    echo -e " grep = auto" >> $GITCONFIG
    echo -e " interactive = auto" >> $GITCONFIG
    echo -e " status = auto" >> $GITCONFIG
    echo -e " ui = 1" >> $GITCONFIG
    echo -e "[branch]" >> $GITCONFIG
    echo -e " autosetuprebase = always" >> $GITCONFIG
    echo -e "[github]" >> $GITCONFIG
    echo -e " user = $GITHUB_USER" >> $GITCONFIG

    if [ -f $SSH_FOLDER/id_rsa_github ]
    then
    exececho "SSH key '$SSH_FOLDER/id_rsa_github' already exists"
    else
    ssh-keygen -t rsa -b 4096 -C "$GITHUB_MAIL" -N "" -f $SSH_FOLDER/id_rsa_github
    fi

    touch $SSHCONFIG
    exececho -e "#Github (default)" >> $SSHCONFIG
    exececho -e " Host github" >> $SSHCONFIG
    exececho -e " HostName github.com" >> $SSHCONFIG
    exececho -e " User git" >> $SSHCONFIG
    exececho -e " IdentityFile $SSH_FOLDER/id_rsa_github" >> $SSHCONFIG
    echo -e "#Github (default)" >> $SSHCONFIG
    echo -e " Host github" >> $SSHCONFIG
    echo -e " HostName github.com" >> $SSHCONFIG
    echo -e " User git" >> $SSHCONFIG
    echo -e " IdentityFile $SSH_FOLDER/id_rsa_github" >> $SSHCONFIG

    exececho2 ""
    exececho2 ""
    exececho2 "**********************"
    exececho2 "CONFIGURE GIT USER"
    exececho2 ""
    exececho2 "Adicione a public ssh key em 'https://github.com/settings/ssh':"
    exececho2 ""
    exececho2 $(cat $SSH_FOLDER/id_rsa_github.pub)
    exececho2 ""
    exececho2 "**********************"
    fi


    if $POSTGRESQL
    then
    exececho ""
    exececho ""
    exececho "**********************"
    exececho "CONFIGURE O POSTGRES"
    exececho ""
    exececho "Para definir usuário e senha no PostgreSQL, execute manualmente os seguintes comandos:"
    exececho "sudo -u postgres createuser NOME_DO_USUARIO -s"
    exececho "sudo -u postgres psql"
    exececho "\password NOME_DO_USUARIO"
    exececho "**********************"
    fi
    exececho2 ""
    exececho2 ""
    exececho2 "**********************"
    exececho2 "CONFIGURE O POSTGRES"
    exececho2 ""
    exececho2 "Para definir usuário e senha no PostgreSQL, execute manualmente os seguintes comandos:"
    exececho2 "sudo -u postgres createuser NOME_DO_USUARIO -s"
    exececho2 "sudo -u postgres psql"
    exececho2 "\password NOME_DO_USUARIO"
    exececho2 "**********************"
    fi

    echo ""
    echo ""
    echo "***************************"
    echo "*** See instalation logs in '$(pwd)/$LOG_SCRIPT'"
    echo "***************************"

    exececho2 ""
    exececho2 ""
    exececho2 "***************************"
    exececho2 "***RESTART YOUR COMPUTER***"
    exececho2 "***************************"

    exit
  3. danielalvarenga revised this gist Oct 2, 2020. 1 changed file with 15 additions and 15 deletions.
    30 changes: 15 additions & 15 deletions script-configure-ubuntu20.04-amd64.sh
    Original file line number Diff line number Diff line change
    @@ -32,19 +32,19 @@ CONFIGURE_GITHUB=false
    GITHUB_USER="your_username"

    # Docker
    DOCKER=false
    DOCKER_COMPOSE=false
    DOCKER=true
    DOCKER_COMPOSE=true
    DOCKER_COMPOSE_VERSION=1.27.4

    # Java oracle
    # Get JDK_URL from version that you want in: https://www.oracle.com/java/technologies/javase-downloads.html
    ORACLE_JAVA_SE=true
    ORACLE_JAVA_SE=false
    JDK_URL=https://download.oracle.com/otn-pub/java/jdk/15+36/779bf45e88a44cbd9ea6621d33e33db1/jdk-15_linux-x64_bin.deb
    JDK_FILE=jdk-15_linux-x64_bin.deb
    JDK_PATH_INSTALLATION=/usr/lib/jvm/jdk-15

    # Golang
    GOLANG=true
    GOLANG=false
    GO_VERSION=1.15.2

    # Install Node, npm
    @@ -55,7 +55,7 @@ NODEJS_VERSION=lts # use "lts", "current" or the number of version
    YARN=true

    # Ruby
    RUBY=true
    RUBY=false
    RUBY_VERSION=2.7.2
    RUBY_VERSION_PATH=2.7
    RUBY_VERSION_MANAGER=RBENV # Use RVM or RBENV or false to source instalation
    @@ -66,7 +66,7 @@ RAILS_VERSION=6.0.3.3
    VIM=true

    # Visual studio code ide
    VISUAL_STUDIO_CODE=true
    VISUAL_STUDIO_CODE=false

    # For files compression
    COMPRESS_7ZIP=true
    @@ -78,22 +78,22 @@ GIMP=true
    VLC=true

    # qBitTorrent
    TORRENT=true
    TORRENT=false

    # Online music player
    SPOTIFY=true
    SPOTIFY=false

    # Terminal
    TERMINATOR=true
    TERMINATOR=false

    # Partitions manager
    GPARTED=true

    # Rest api simulations
    POSTMAN=true
    POSTMAN=false

    # Messenger
    SKYPE=true
    SKYPE=false

    # Google chrome web browser
    GOOGLE_CHROME=true
    @@ -102,27 +102,27 @@ GOOGLE_CHROME=true
    SQLITE=false

    # Sqlite database manager
    SQLITE_BROWSER=true
    SQLITE_BROWSER=false

    # Database postgresql
    POSTGRESQL=false

    # Postgresql database manager
    PGADMIN=true
    PGADMIN=false

    # Database redis
    REDIS=false

    # Redis database manager
    REDIS_DESKTOP_MANAGER=true
    REDIS_DESKTOP_MANAGER=false

    # Database mysql
    MYSQL=false
    MYSQL_USER=root
    MYSQL_PASSWORD=root

    # Database manager mysql
    WORKBENCH=true
    WORKBENCH=false

    # Manage extra options for mouse, keyboard and other resources of ubuntu
    TWEAKS=true
  4. danielalvarenga revised this gist Oct 2, 2020. 1 changed file with 227 additions and 161 deletions.
    388 changes: 227 additions & 161 deletions script-configure-ubuntu20.04-amd64.sh
    Original file line number Diff line number Diff line change
    @@ -1,14 +1,14 @@
    #!/bin/bash

    # Author: Daniel Alvarenga Lima
    # Ubuntu version supported: 20.04 LTS 64Bit
    # Ubuntu version supported: 20.04 LTS amd64

    # EXECUTE
    # sudo chmod +x script-configure-ubuntu18.94-amd64.sh
    # ./script-configure-ubuntu20.04-amd64.sh

    #INSTRUCTIONS
    # Change "true" por "false" to ignore software setup
    # Set 'true' in items that you want to install

    # Required only in the first time to execute this script
    UPDATE_REPOSITORIES=true
    @@ -17,24 +17,35 @@ UPGRADE_PACKAGES=true
    # build-essential, git, curl
    REQUIRED=true

    # Add different colors for $ user@host:~/folder(branch) in terminal
    COLORIZE_TERMINAL=true
    WITH_HOST=true
    # Add different colors and format terminal label
    # Execute only once as true. If you need customize, see: https://gist.github.com/danielalvarenga/2df8cabbd6f3041c2378
    # Example with host: user@host:~/current_folder_path(branch)
    # Example without host (short): user:~/current_folder_path(branch)
    COLORIZE_TERMINAL=false
    # recommend to use false
    WITH_HOST=false

    # Configure GIT
    CONFIGURE_GITHUB=true
    GITHUB_NAME="Daniel Alvarenga Lima"
    GITHUB_MAIL="[email protected]"
    GITHUB_USER="danielalvarenga"

    # java oracle
    ORACLE_JAVA_SE=false
    JDK_FILE=jdk-14.0.1_linux-x64_bin.deb
    JDK_PATH_INSTALLATION=/usr/lib/jvm/jdk-14.0.1

    # golang
    CONFIGURE_GITHUB=false
    GITHUB_NAME="Your name that appear in commits"
    GITHUB_MAIL="[email protected]"
    GITHUB_USER="your_username"

    # Docker
    DOCKER=false
    DOCKER_COMPOSE=false
    DOCKER_COMPOSE_VERSION=1.27.4

    # Java oracle
    # Get JDK_URL from version that you want in: https://www.oracle.com/java/technologies/javase-downloads.html
    ORACLE_JAVA_SE=true
    JDK_URL=https://download.oracle.com/otn-pub/java/jdk/15+36/779bf45e88a44cbd9ea6621d33e33db1/jdk-15_linux-x64_bin.deb
    JDK_FILE=jdk-15_linux-x64_bin.deb
    JDK_PATH_INSTALLATION=/usr/lib/jvm/jdk-15

    # Golang
    GOLANG=true
    GO_VERSION=1.15
    GO_VERSION=1.15.2

    # Install Node, npm
    # https://github.com/nodesource/distributions/blob/master/README.md#debinstall
    @@ -43,81 +54,81 @@ NODEJS_VERSION=lts # use "lts", "current" or the number of version

    YARN=true

    # ruby
    # Ruby
    RUBY=true
    RUBY_VERSION=2.7.1
    RUBY_VERSION=2.7.2
    RUBY_VERSION_PATH=2.7
    RUBY_VERSION_MANAGER=RBENV # Use RVM or RBENV or false to source instalation
    RAILS=true
    RAILS_VERSION=6.0.3.2
    RAILS=false
    RAILS_VERSION=6.0.3.3

    # text editor
    # Terminal text editor
    VIM=true

    # visual studio code ide
    # Visual studio code ide
    VISUAL_STUDIO_CODE=true

    # for files compression
    # For files compression
    COMPRESS_7ZIP=true

    # image editor
    # Image editor
    GIMP=true

    # player and codecs
    # Player and codecs
    VLC=true

    # qBitTorrent
    TORRENT=true

    # online musics
    # Online music player
    SPOTIFY=true

    # terminal
    # Terminal
    TERMINATOR=true

    # partitions manager
    # Partitions manager
    GPARTED=true

    # gerenciador de particoes
    # Rest api simulations
    POSTMAN=true

    # messenger
    # Messenger
    SKYPE=true

    # google chrome web browser
    # Google chrome web browser
    GOOGLE_CHROME=true

    # database sqlite
    SQLITE=true
    # Database sqlite
    SQLITE=false

    # sqlite database manager
    # Sqlite database manager
    SQLITE_BROWSER=true

    # database postgresql
    POSTGRESQL=true
    # Database postgresql
    POSTGRESQL=false

    # postgresql database manager
    # Postgresql database manager
    PGADMIN=true

    # database redis
    REDIS=true
    # Database redis
    REDIS=false

    # redis database manager
    # Redis database manager
    REDIS_DESKTOP_MANAGER=true

    # database mysql
    MYSQL=true
    # Database mysql
    MYSQL=false
    MYSQL_USER=root
    MYSQL_PASSWORD=root

    # database manager mysql
    # Database manager mysql
    WORKBENCH=true

    # Manage extra options for mouse, keyboard and other resources of ubuntu
    TWEAKS=true


    # paths
    # Paths
    LOG_SCRIPT=./log_script.txt
    GITCONFIG=/etc/gitconfig
    SSH_FOLDER=~/.ssh
    @@ -127,39 +138,63 @@ BASHRC=~/.bashrc
    RBENV_DIR=~/.rbenv
    RUBY_BUILD_DIR="$RBENV_DIR/plugins/ruby-build"

    rm $LOG_SCRIPT
    touch $LOG_SCRIPT
    function execsudo {
    sudo "$@" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    }

    function exececho {
    echo "$@" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    }

    function dpkginstall {
    echo "installing package $1"
    exececho "*** Installing package $1"
    shift
    dpkg -i "$@" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    execsudo dpkg -i "$@" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    }

    function aptinstall {
    echo "installing $1"
    exececho "*** Installing $1"
    shift
    sudo apt-get -y -f install "$@" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    execsudo apt-get -y -f install "$@"
    }

    function aptremove {
    exececho "*** Removing $1"
    shift
    execsudo apt-get -y remove "$@"
    }

    function snapinstall {
    echo "installing $1"
    exececho "*** Installing $1"
    shift
    sudo snap install "$@" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    execsudo snap install "$@"
    }

    function deletefile {
    exececho "*** Removing file $@"
    if [ -f "$@" ]; then execsudo rm "$@"; fi;
    }


    deletefile $LOG_SCRIPT
    touch $LOG_SCRIPT
    exececho "***"
    exececho "*** Execution logs in '$(pwd)/$LOG_SCRIPT'"
    exececho "*** Execute 'tail -F $(pwd)/$LOG_SCRIPT' in another terminal to see logs in real time"
    exececho "***"


    if $UPDATE_REPOSITORIES
    then
    echo "*** Update Respositories"
    exececho "*** Update Respositories"
    sudo apt-get update
    fi


    if $UPGRADE_PACKAGES
    then
    echo "*** Upgrade Packages"
    sudo apt-get -y upgrade
    exececho "*** Upgrade Packages"
    execsudo apt-get -y upgrade
    fi


    @@ -172,56 +207,85 @@ then
    fi


    if $DOCKER
    then
    aptremove "Existent docker versions" docker docker-engine docker.io containerd runc
    aptinstall "Docker dependencies" apt-transport-https ca-certificates curl gnupg-agent software-properties-common
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | execsudo apt-key add -
    execsudo apt-key fingerprint 0EBFCD88
    execsudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    execsudo apt-get update
    aptinstall "Docker" docker-ce docker-ce-cli containerd.io
    if ! $(grep -q coisa /etc/group); then execsudo groupadd docker; fi;
    execsudo usermod -aG docker $USER
    docker --version
    fi

    if $DOCKER_COMPOSE
    then
    DOCKER_COMPOSE_RUNNER=/usr/local/bin/docker-compose
    DOCKER_COMPOSE_LINK=/usr/bin/docker-compose
    exececho "*** Removing existent docker-compose versions"
    deletefile $DOCKER_COMPOSE_RUNNER
    deletefile $DOCKER_COMPOSE_LINK

    exececho "*** Installing docker-compose"
    execsudo curl -L "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-$(uname -s)-$(uname -m)" -o $DOCKER_COMPOSE_RUNNER
    execsudo chmod +x $DOCKER_COMPOSE_RUNNER
    execsudo ln -s $DOCKER_COMPOSE_RUNNER $DOCKER_COMPOSE_LINK
    docker-compose --version
    fi


    if $ORACLE_JAVA_SE
    then
    echo "*** Removing OpenJDK"
    sudo apt-get -y remove --purge openjdk-*
    aptremove "OpenJDK" --purge openjdk-*


    echo "*** Installing Oracle Java"
    exececho "*** Installing Oracle Java"
    JDK_DOWNLOADED_FILE=$DOWNLOADS/$JDK_FILE
    if [ -f $JDK_DOWNLOADED_FILE ]
    then
    echo "--- $JDK_FILE already exists"
    exececho "--- $JDK_FILE already exists"
    else
    cd $DOWNLOADS
    wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/14.0.1+7/664493ef4a6946b186ff29eb326336a2/$JDK_FILE -O $JDK_DOWNLOADED_FILE
    wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" $JDK_URL -O $JDK_DOWNLOADED_FILE
    fi
    dpkginstall "Java Oracle" $JDK_DOWNLOADED_FILE

    echo "*** Setting java version"
    sudo update-alternatives --install /usr/bin/java java $JDK_PATH_INSTALLATION/bin/java 1
    sudo update-alternatives --install /usr/bin/javac javac $JDK_PATH_INSTALLATION/bin/javac 1
    exececho "*** Setting java version"
    execsudo update-alternatives --install /usr/bin/java java $JDK_PATH_INSTALLATION/bin/java 1
    execsudo update-alternatives --install /usr/bin/javac javac $JDK_PATH_INSTALLATION/bin/javac 1

    sudo update-alternatives --config java
    sudo update-alternatives --config javac
    execsudo update-alternatives --config java
    execsudo update-alternatives --config javac
    java -version
    fi


    if $GOLANG
    then
    echo "*** installing GOlang"
    exececho "*** installing GOlang"
    GO_FILE=$DOWNLOADS/go$GO_VERSION.linux-amd64.tar.gz
    if [ -f $GO_FILE ]
    then
    echo "--- $GO_FILE already exists"
    exececho "--- $GO_FILE already exists"
    else
    cd $DOWNLOADS
    wget https://dl.google.com/go/go$GO_VERSION.linux-amd64.tar.gz
    fi
    sudo tar -C /usr/local -xzf $GO_FILE
    echo ''
    echo '# Add GO lang path environment variable' >> $HOME/.profile
    echo 'export PATH=$PATH:/usr/local/go/bin' >> $HOME/.profile
    execsudo tar -C /usr/local -xzf $GO_FILE
    exececho ''
    exececho '# Add GO lang path environment variable' >> $HOME/.profile
    exececho 'export PATH=$PATH:/usr/local/go/bin' >> $HOME/.profile
    mkdir -p $HOME/go/src
    fi


    if ( $NODEJS || $RUBY )
    then
    curl -sL https://deb.nodesource.com/setup_$NODEJS_VERSION.x | sudo -E bash -
    sudo apt-get update
    curl -sL https://deb.nodesource.com/setup_$NODEJS_VERSION.x | execsudo -E bash -
    execsudo apt-get update
    aptinstall NodeJS nodejs
    node -v
    fi
    @@ -230,8 +294,8 @@ fi
    if ( $YARN || $RUBY )
    then
    curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
    echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
    sudo apt-get update
    exececho "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
    execsudo apt-get update
    aptinstall Yarn yarn
    yarn -v
    fi
    @@ -306,11 +370,11 @@ fi

    if $GOOGLE_CHROME
    then
    echo "*** installing Google Chrome 64bits"
    exececho "*** installing Google Chrome 64bits"
    CHROME_FILE=$DOWNLOADS/google-chrome-stable_current_amd64.deb
    if [ -f $CHROME_FILE ]
    then
    echo ""
    exececho ""
    else
    cd $DOWNLOADS
    wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
    @@ -339,14 +403,16 @@ fi

    if $PGADMIN
    then
    aptinstall "PG Admin" pgadmin3
    curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | execsudo apt-key add
    execsudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'
    aptinstall "PG Admin" pgadmin4
    fi


    if $MYSQL
    then
    sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password $MYSQL_USER"
    sudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $MYSQL_PASSWORD"
    execsudo debconf-set-selections <<< "mysql-server mysql-server/root_password password $MYSQL_USER"
    execsudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $MYSQL_PASSWORD"
    aptinstall MySQL mysql-server mysql-client libmysqlclient-dev
    mysql -uroot -proot <<SQL
    CREATE USER 'rails'@'localhost';
    @@ -361,15 +427,15 @@ fi

    if $WORKBENCH
    then
    echo "*** installing Workbench"
    exececho "*** installing Workbench"
    cd $DOWNLOADS

    aptinstall "Workbench dependencies" libctemplate2v5 libgeos-3.5.0 libgeos-c1v5 libhdf4-0-alt libaec0 libsz2 libhdf5-10 libnetcdf11 libpcrecpp0v5 libpq5 libtinyxml2.6.2v5 libzip4 python-crypto python-six python-ecdsa python-paramiko

    WORKBENCH_FILE=$DOWNLOADS/mysql-workbench-community_8.0.21-1ubuntu20.04_amd64.deb
    if [ -f $WORKBENCH_FILE ]
    then
    echo ""
    exececho ""
    else
    wget https://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community_8.0.21-1ubuntu20.04_amd64.deb
    fi
    @@ -380,11 +446,11 @@ if $RUBY
    then
    aptinstall "Ruby/Rails dependences: zlib1g-dev libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev" zlib1g-dev libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev

    echo "*** Git, NodeJS and Yarn are dependences of rails and also were installed." >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    exececho "*** Git, NodeJS and Yarn are dependences of rails and also were installed." >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT

    if [ $RUBY_VERSION_MANAGER == "RVM" ]
    then
    echo "installing RVM with RUBY $RUBY_VERSION"
    exececho "installing RVM with RUBY $RUBY_VERSION"
    if ! type rvm >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT; then
    cd
    aptinstall "RVM dependencies" libgdbm-dev libncurses5-dev automake libtool bison libffi-dev
    @@ -399,16 +465,16 @@ then

    elif [ $RUBY_VERSION_MANAGER == "RBENV" ]
    then
    echo "installing Rbenv with Ruby $RUBY_VERSION"
    exececho "installing Rbenv with Ruby $RUBY_VERSION"
    aptinstall "Rbenv dependencies" autoconf bison libssl-dev libyaml-dev libreadline-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev
    if [ -d $RBENV_DIR ]
    then
    cd $RBENV_DIR
    git pull
    else
    git clone https://github.com/rbenv/rbenv.git $RBENV_DIR
    echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
    echo 'eval "$(rbenv init -)"' >> ~/.bashrc
    exececho 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
    exececho 'eval "$(rbenv init -)"' >> ~/.bashrc
    export PATH="$HOME/.rbenv/bin:$PATH"
    eval "$(rbenv init -)"
    fi
    @@ -418,7 +484,7 @@ then
    git pull
    else
    git clone https://github.com/rbenv/ruby-build.git $RUBY_BUILD_DIR
    echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
    exececho 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
    export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"
    cd $RUBY_BUILD_DIR
    ./install.sh
    @@ -429,13 +495,13 @@ then


    else
    echo "*** installing Ruby from source"
    exececho "*** installing Ruby from source"
    cd $DOWNLOADS
    RUBY_FILE=ruby-$RUBY_VERSION.tar.gz
    RUBY_DOWNLOADED_FILE=$DOWNLOADS/$RUBY_FILE
    if [ -f $RUBY_DOWNLOADED_FILE ]
    then
    echo "--- $RUBY_FILE already exists"
    exececho "--- $RUBY_FILE already exists"
    else
    wget http://ftp.ruby-lang.org/pub/ruby/$RUBY_VERSION_PATH/ruby-$RUBY_VERSION.tar.gz
    fi
    @@ -449,13 +515,13 @@ then

    ruby -v

    echo installing Bundler
    echo "gem: --no-ri --no-rdoc" > ~/.gemrc
    exececho installing Bundler
    exececho "gem: --no-ri --no-rdoc" > ~/.gemrc
    gem install bundler -N >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT

    if $RAILS
    then
    echo "installing Rails $RAILS_VERSION"
    exececho "installing Rails $RAILS_VERSION"
    gem install rails -v $RAILS_VERSION -N >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    fi
    fi
    @@ -481,95 +547,95 @@ fi

    if $COLORIZE_TERMINAL
    then
    echo -e "" >> $BASHRC
    echo -e "# Colorize terminal" >> $BASHRC
    echo -e "function parse_git_branch () {" >> $BASHRC
    echo -e " git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'" >> $BASHRC
    echo -e "}" >> $BASHRC
    echo -e 'RED="\[\033[01;31m\]"' >> $BASHRC
    echo -e 'YELLOW="\[\033[01;33m\]"' >> $BASHRC
    echo -e 'GREEN="\[\033[01;32m\]"' >> $BASHRC
    echo -e 'BLUE="\[\033[01;34m\]"' >> $BASHRC
    echo -e 'NO_COLOR="\[\033[00m\]"' >> $BASHRC
    exececho -e "" >> $BASHRC
    exececho -e "# Colorize terminal" >> $BASHRC
    exececho -e "function parse_git_branch () {" >> $BASHRC
    exececho -e " git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'" >> $BASHRC
    exececho -e "}" >> $BASHRC
    exececho -e 'RED="\[\033[01;31m\]"' >> $BASHRC
    exececho -e 'YELLOW="\[\033[01;33m\]"' >> $BASHRC
    exececho -e 'GREEN="\[\033[01;32m\]"' >> $BASHRC
    exececho -e 'BLUE="\[\033[01;34m\]"' >> $BASHRC
    exececho -e 'NO_COLOR="\[\033[00m\]"' >> $BASHRC

    if $WITH_HOST
    then
    echo -e 'PS1="$GREEN\u@\h$NO_COLOR:$BLUE\w$YELLOW\$(parse_git_branch)$NO_COLOR\$ "' >> $BASHRC
    exececho -e 'PS1="$GREEN\u@\h$NO_COLOR:$BLUE\w$YELLOW\$(parse_git_branch)$NO_COLOR\$ "' >> $BASHRC
    else
    echo -e 'PS1="$GREEN\u$NO_COLOR:$BLUE\w$YELLOW\$(parse_git_branch)$NO_COLOR\$ "' >> $BASHRC
    exececho -e 'PS1="$GREEN\u$NO_COLOR:$BLUE\w$YELLOW\$(parse_git_branch)$NO_COLOR\$ "' >> $BASHRC
    fi

    source $BASHRC
    fi


    echo "*** remove packages"
    sudo apt-get clean
    exececho "*** Clean packages"
    execsudo apt-get clean


    if $CONFIGURE_GITHUB
    then
    sudo rm $GITCONFIG
    sudo touch $GITCONFIG
    sudo chmod 777 $GITCONFIG
    echo -e "[user]" >> $GITCONFIG
    echo -e " name = $GITHUB_NAME" >> $GITCONFIG
    echo -e " email = $GITHUB_MAIL" >> $GITCONFIG
    echo -e "[core]" >> $GITCONFIG
    echo -e " editor = vim -f" >> $GITCONFIG
    echo -e "[alias]" >> $GITCONFIG
    echo -e " df = diff" >> $GITCONFIG
    echo -e " st = status" >> $GITCONFIG
    echo -e " cm = commit" >> $GITCONFIG
    echo -e " ch = checkout" >> $GITCONFIG
    echo -e " br = branch" >> $GITCONFIG
    echo -e " lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative" >> $GITCONFIG
    echo -e " ctags = !.git/hooks/ctags" >> $GITCONFIG
    echo -e "[color]" >> $GITCONFIG
    echo -e " branch = auto" >> $GITCONFIG
    echo -e " diff = auto" >> $GITCONFIG
    echo -e " grep = auto" >> $GITCONFIG
    echo -e " interactive = auto" >> $GITCONFIG
    echo -e " status = auto" >> $GITCONFIG
    echo -e " ui = 1" >> $GITCONFIG
    echo -e "[branch]" >> $GITCONFIG
    echo -e " autosetuprebase = always" >> $GITCONFIG
    echo -e "[github]" >> $GITCONFIG
    echo -e " user = $GITHUB_USER" >> $GITCONFIG
    execsudo rm $GITCONFIG
    execsudo touch $GITCONFIG
    execsudo chmod 777 $GITCONFIG
    exececho -e "[user]" >> $GITCONFIG
    exececho -e " name = $GITHUB_NAME" >> $GITCONFIG
    exececho -e " email = $GITHUB_MAIL" >> $GITCONFIG
    exececho -e "[core]" >> $GITCONFIG
    exececho -e " editor = vim -f" >> $GITCONFIG
    exececho -e "[alias]" >> $GITCONFIG
    exececho -e " df = diff" >> $GITCONFIG
    exececho -e " st = status" >> $GITCONFIG
    exececho -e " cm = commit" >> $GITCONFIG
    exececho -e " ch = checkout" >> $GITCONFIG
    exececho -e " br = branch" >> $GITCONFIG
    exececho -e " lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative" >> $GITCONFIG
    exececho -e " ctags = !.git/hooks/ctags" >> $GITCONFIG
    exececho -e "[color]" >> $GITCONFIG
    exececho -e " branch = auto" >> $GITCONFIG
    exececho -e " diff = auto" >> $GITCONFIG
    exececho -e " grep = auto" >> $GITCONFIG
    exececho -e " interactive = auto" >> $GITCONFIG
    exececho -e " status = auto" >> $GITCONFIG
    exececho -e " ui = 1" >> $GITCONFIG
    exececho -e "[branch]" >> $GITCONFIG
    exececho -e " autosetuprebase = always" >> $GITCONFIG
    exececho -e "[github]" >> $GITCONFIG
    exececho -e " user = $GITHUB_USER" >> $GITCONFIG

    ssh-keygen -t rsa -b 4096 -C "$GITHUB_MAIL" -N "" -f $SSH_FOLDER/id_rsa_github
    echo "" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "**********************" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "CONFIGURE GIT USER" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "Adicione a public ssh key em 'https://github.com/settings/ssh':" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    cat $SSH_FOLDER/id_rsa_github.pub >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "**********************" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    exececho ""
    exececho ""
    exececho "**********************"
    exececho "CONFIGURE GIT USER"
    exececho ""
    exececho "Adicione a public ssh key em 'https://github.com/settings/ssh':"
    exececho ""
    cat $SSH_FOLDER/id_rsa_github.pub
    exececho ""
    exececho "**********************"

    touch $SSHCONFIG
    echo -e "#Github (default)" >> $SSHCONFIG >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo -e " Host github" >> $SSHCONFIG >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo -e " HostName github.com" >> $SSHCONFIG >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo -e " User git" >> $SSHCONFIG >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo -e " IdentityFile $SSH_FOLDER/id_rsa_github" >> $SSHCONFIG >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    exececho -e "#Github (default)" >> $SSHCONFIG
    exececho -e " Host github" >> $SSHCONFIG
    exececho -e " HostName github.com" >> $SSHCONFIG
    exececho -e " User git" >> $SSHCONFIG
    exececho -e " IdentityFile $SSH_FOLDER/id_rsa_github" >> $SSHCONFIG
    fi


    if $POSTGRESQL
    then
    echo "" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "**********************" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "CONFIGURE O POSTGRES" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "Para definir usuário e senha no PostgreSQL, execute manualmente os seguintes comandos:" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "sudo -u postgres createuser NOME_DO_USUARIO -s" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "sudo -u postgres psql" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "\password NOME_DO_USUARIO" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "**********************" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    exececho ""
    exececho ""
    exececho "**********************"
    exececho "CONFIGURE O POSTGRES"
    exececho ""
    exececho "Para definir usuário e senha no PostgreSQL, execute manualmente os seguintes comandos:"
    exececho "sudo -u postgres createuser NOME_DO_USUARIO -s"
    exececho "sudo -u postgres psql"
    exececho "\password NOME_DO_USUARIO"
    exececho "**********************"
    fi

    exit
    exit
  5. danielalvarenga revised this gist Aug 18, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion script-configure-ubuntu20.04-amd64.sh
    Original file line number Diff line number Diff line change
    @@ -220,7 +220,7 @@ fi

    if ( $NODEJS || $RUBY )
    then
    curl -sL https://deb.nodesource.com/setup_$NODEJS_VERSION.x | -E bash -
    curl -sL https://deb.nodesource.com/setup_$NODEJS_VERSION.x | sudo -E bash -
    sudo apt-get update
    aptinstall NodeJS nodejs
    node -v
  6. danielalvarenga revised this gist Aug 17, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion script-configure-ubuntu20.04-amd64.sh
    Original file line number Diff line number Diff line change
    @@ -220,7 +220,7 @@ fi

    if ( $NODEJS || $RUBY )
    then
    curl -sL https://deb.nodesource.com/setup_$NODEJS_VERSION.x | bash -
    curl -sL https://deb.nodesource.com/setup_$NODEJS_VERSION.x | -E bash -
    sudo apt-get update
    aptinstall NodeJS nodejs
    node -v
  7. danielalvarenga revised this gist Aug 17, 2020. 1 changed file with 186 additions and 186 deletions.
    372 changes: 186 additions & 186 deletions script-configure-ubuntu20.04-amd64.sh
    Original file line number Diff line number Diff line change
    @@ -11,117 +11,110 @@
    # Change "true" por "false" to ignore software setup

    # Required only in the first time to execute this script
    UPDATE_REPOSITORIES=false
    UPGRADE_PACKAGES=false
    UPDATE_REPOSITORIES=true
    UPGRADE_PACKAGES=true

    # build-essential, git, curl, libs
    REQUIRED=false
    # build-essential, git, curl
    REQUIRED=true

    # Add different colors for $ user@host:~/folder(branch) in terminal
    COLORIZE_TERMINAL=false
    WITH_HOST=false
    COLORIZE_TERMINAL=true
    WITH_HOST=true

    # Configure GIT
    CONFIGURE_GITHUB=false
    CONFIGURE_GITHUB=true
    GITHUB_NAME="Daniel Alvarenga Lima"
    GITHUB_MAIL="[email protected]"
    GITHUB_USER="danielalvarenga"

    CONFIGURE_GITLAB=false
    GITLAB_HOSTNAME="YOUR_GITLAB_DOMAIN"
    GITLAB_MAIL="YOUR_GITLAB_EMAIL"

    # java
    ORACLE_JAVA_SE=true
    # java oracle
    ORACLE_JAVA_SE=false
    JDK_FILE=jdk-14.0.1_linux-x64_bin.deb
    JDK_PATH_INSTALLATION=/usr/lib/jvm/jdk-14.0.1

    # golang
    GOLANG=false
    GO_VERSION=1.12.7
    GOLANG=true
    GO_VERSION=1.15

    # framework javascript
    NODEJS=false
    # Install Node, npm
    # https://github.com/nodesource/distributions/blob/master/README.md#debinstall
    NODEJS=true
    NODEJS_VERSION=lts # use "lts", "current" or the number of version

    # ruby
    RUBY_WITH_RVM=false
    RUBY_WITH_RBENV=false # only install if RUBY_WITH_RVM is false
    RUBY_WITHOUT_VERSION_MANAGER=false # only install if RUBY_WITH_RVM and RUBY_WITH_RBENV is false
    RUBY_VERSION=2.6.3
    RUBY_VERSION_PATH=2.6
    YARN=true

    #rails
    RAILS=false
    RAILS_VERSION=5.2.3
    # ruby
    RUBY=true
    RUBY_VERSION=2.7.1
    RUBY_VERSION_PATH=2.7
    RUBY_VERSION_MANAGER=RBENV # Use RVM or RBENV or false to source instalation
    RAILS=true
    RAILS_VERSION=6.0.3.2

    # text editor
    VIM=false
    VIM=true

    # visual studio code ide
    VISUAL_STUDIO_CODE=false
    VISUAL_STUDIO_CODE=true

    # for files compression
    COMPRESS_7ZIP=false
    COMPRESS_7ZIP=true

    # image editor
    GIMP=false
    GIMP=true

    # player and codecs
    VLC=false

    # storage
    DROPBOX=false
    VLC=true

    # qBitTorrent
    TORRENT=false
    TORRENT=true

    # online musics
    SPOTIFY=false
    SPOTIFY=true

    # terminal
    TERMINATOR=false
    TERMINATOR=true

    # partitions manager
    GPARTED=false
    GPARTED=true

    # gerenciador de particoes
    POSTMAN=false
    POSTMAN=true

    # messenger
    SKYPE=false
    SKYPE=true

    # google chrome web browser
    GOOGLE_CHROME=false
    GOOGLE_CHROME=true

    # database sqlite
    SQLITE=false
    SQLITE=true

    # sqlite database manager
    SQLITE_BROWSER=false
    SQLITE_BROWSER=true

    # database postgresql
    POSTGRESQL=false
    POSTGRESQL=true

    # postgresql database manager
    PGADMIN=false
    PGADMIN=true

    # database redis
    REDIS=false
    REDIS=true

    # redis database manager
    REDIS_DESKTOP_MANAGER=false
    REDIS_DESKTOP_MANAGER=true

    # database mysql
    MYSQL=false
    MYSQL=true
    MYSQL_USER=root
    MYSQL_PASSWORD=root

    # database manager mysql
    WORKBENCH=false
    WORKBENCH=true

    # Install Tweaks to configure right click
    # More details: https://itsfoss.com/fix-right-click-touchpad-ubuntu
    RESOLVE_TOUCHPAD=false
    # Manage extra options for mouse, keyboard and other resources of ubuntu
    TWEAKS=true


    # paths
    @@ -131,21 +124,28 @@ SSH_FOLDER=~/.ssh
    SSHCONFIG="$SSH_FOLDER/config"
    DOWNLOADS=~/Downloads
    BASHRC=~/.bashrc
    MOUSE_CONFIG=/usr/share/X11/xorg.conf.d/52-mymods.conf
    RBENV_DIR=~/.rbenv
    RUBY_BUILD_DIR="$RBENV_DIR/plugins/ruby-build"

    rm $LOG_SCRIPT
    touch $LOG_SCRIPT

    function dpkginstall {
    echo "installing package $1"
    shift
    dpkg -i "$@" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    }

    function aptinstall {
    echo installing $1
    shift
    sudo apt-get -y -f install "$@" >$LOG_SCRIPT 2>$LOG_SCRIPT
    echo "installing $1"
    shift
    sudo apt-get -y -f install "$@" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    }

    function snapinstall {
    echo installing $1
    shift
    sudo snap install "$@" >$LOG_SCRIPT 2>$LOG_SCRIPT
    echo "installing $1"
    shift
    sudo snap install "$@" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    }


    @@ -166,8 +166,9 @@ fi
    if $REQUIRED
    then
    aptinstall "Build Essencial" build-essential
    aptinstall Git git
    aptinstall Git git-core
    aptinstall CURL curl
    aptinstall Wget wget
    fi


    @@ -178,15 +179,15 @@ then


    echo "*** Installing Oracle Java"
    JDK_FILE=$DOWNLOADS/$JDK_FILE
    if [ -f $JDK_FILE ]
    JDK_DOWNLOADED_FILE=$DOWNLOADS/$JDK_FILE
    if [ -f $JDK_DOWNLOADED_FILE ]
    then
    echo ""
    echo "--- $JDK_FILE already exists"
    else
    cd $DOWNLOADS
    wget https://download.oracle.com/otn-pub/java/jdk/14.0.1+7/664493ef4a6946b186ff29eb326336a2/$JDK_FILE
    wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/14.0.1+7/664493ef4a6946b186ff29eb326336a2/$JDK_FILE -O $JDK_DOWNLOADED_FILE
    fi
    sudo dpkg -i $JDK_FILE
    dpkginstall "Java Oracle" $JDK_DOWNLOADED_FILE

    echo "*** Setting java version"
    sudo update-alternatives --install /usr/bin/java java $JDK_PATH_INSTALLATION/bin/java 1
    @@ -204,25 +205,38 @@ then
    GO_FILE=$DOWNLOADS/go$GO_VERSION.linux-amd64.tar.gz
    if [ -f $GO_FILE ]
    then
    echo ""
    echo "--- $GO_FILE already exists"
    else
    cd $DOWNLOADS
    wget https://dl.google.com/go/go$GO_VERSION.linux-amd64.tar.gz
    fi
    sudo tar -C /usr/local -xzf $GO_FILE
    echo ''
    echo '# Add GO lang path environment variable' >> $HOME/.profile
    echo 'export PATH=$PATH:/usr/local/go/bin' >> $HOME/.profile
    mkdir -p $HOME/go/src
    fi


    if $NODEJS
    if ( $NODEJS || $RUBY )
    then
    snapinstall NodeJS node --classic
    curl -sL https://deb.nodesource.com/setup_$NODEJS_VERSION.x | bash -
    sudo apt-get update
    aptinstall NodeJS nodejs
    node -v
    fi


    if ( $YARN || $RUBY )
    then
    curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
    echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
    sudo apt-get update
    aptinstall Yarn yarn
    yarn -v
    fi


    if $VIM
    then
    aptinstall VIM vim
    @@ -254,12 +268,6 @@ then
    fi


    if $DROPBOX
    then
    aptinstall Dropbox nautilus-dropbox
    fi


    if $TORRENT
    then
    aptinstall qBitTorrent qbittorrent
    @@ -307,7 +315,7 @@ then
    cd $DOWNLOADS
    wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
    fi
    sudo dpkg -i $CHROME_FILE
    dpkginstall "Google chrome" $CHROME_FILE
    fi


    @@ -354,88 +362,102 @@ fi
    if $WORKBENCH
    then
    echo "*** installing Workbench"
    aptinstall "Workbench dependeencies" libctemplate2v5 libgeos-3.5.0 libgeos-c1v5 libhdf4-0-alt libaec0 libsz2 libhdf5-10 libnetcdf11 libpcrecpp0v5 libpq5 libtinyxml2.6.2v5 libzip4 python-crypto python-six python-ecdsa python-paramiko
    WORKBENCH_FILE=$DOWNLOADS/mysql-workbench-community-6.3.8-1ubu1604-amd64.deb
    cd $DOWNLOADS

    aptinstall "Workbench dependencies" libctemplate2v5 libgeos-3.5.0 libgeos-c1v5 libhdf4-0-alt libaec0 libsz2 libhdf5-10 libnetcdf11 libpcrecpp0v5 libpq5 libtinyxml2.6.2v5 libzip4 python-crypto python-six python-ecdsa python-paramiko

    WORKBENCH_FILE=$DOWNLOADS/mysql-workbench-community_8.0.21-1ubuntu20.04_amd64.deb
    if [ -f $WORKBENCH_FILE ]
    then
    echo ""
    else
    cd $DOWNLOADS
    wget https://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community-6.3.8-1ubu1604-amd64.deb
    wget https://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community_8.0.21-1ubuntu20.04_amd64.deb
    fi
    sudo dpkg -i $WORKBENCH_FILE
    dpkginstall Workbench $WORKBENCH_FILE
    fi



    if $RUBY_WITH_RVM
    if $RUBY
    then
    echo "installing RVM with RUBY $RUBY_VERSION"
    if ! type rvm >$LOG_SCRIPT 2>$LOG_SCRIPT; then
    cd
    gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
    aptinstall "RVM dependencies" gawk libsqlite3-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake libtool bison libffi-dev
    curl -sSL https://get.rvm.io | bash -s stable
    source ~/.rvm/scripts/rvm
    fi
    rvm requirements
    rvm install $RUBY_VERSION
    rvm use $RUBY_VERSION --default

    echo installing Bundler
    echo "gem: --no-ri --no-rdoc" > ~/.gemrc
    gem install bundler -N >$LOG_SCRIPT 2>$LOG_SCRIPT
    aptinstall "Ruby/Rails dependences: zlib1g-dev libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev" zlib1g-dev libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev

    echo "*** Git, NodeJS and Yarn are dependences of rails and also were installed." >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT

    elif $RUBY_WITH_RBENV
    then
    echo "installing Rbenv with Ruby $RUBY_VERSION"
    aptinstall "Rbenv dependencies" autoconf bison libssl-dev libyaml-dev libreadline-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev
    if [ -d $RBENV_DIR ]
    if [ $RUBY_VERSION_MANAGER == "RVM" ]
    then
    cd $RBENV_DIR
    git pull
    else
    git clone https://github.com/rbenv/rbenv.git $RBENV_DIR
    echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
    echo 'eval "$(rbenv init -)"' >> ~/.bashrc
    export PATH="$HOME/.rbenv/bin:$PATH"
    eval "$(rbenv init -)"
    fi
    if [ -d $RUBY_BUILD_DIR ]
    echo "installing RVM with RUBY $RUBY_VERSION"
    if ! type rvm >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT; then
    cd
    aptinstall "RVM dependencies" libgdbm-dev libncurses5-dev automake libtool bison libffi-dev
    gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
    curl -sSL https://get.rvm.io | bash -s stable
    source ~/.rvm/scripts/rvm
    fi
    rvm requirements
    rvm install $RUBY_VERSION
    rvm use $RUBY_VERSION --default


    elif [ $RUBY_VERSION_MANAGER == "RBENV" ]
    then
    cd $RUBY_BUILD_DIR
    git pull
    else
    git clone https://github.com/rbenv/ruby-build.git $RUBY_BUILD_DIR
    echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
    export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"
    cd $RUBY_BUILD_DIR
    ./install.sh
    fi
    source ~/.bashrc
    rbenv install $RUBY_VERSION -s
    rbenv global $RUBY_VERSION
    echo "installing Rbenv with Ruby $RUBY_VERSION"
    aptinstall "Rbenv dependencies" autoconf bison libssl-dev libyaml-dev libreadline-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev
    if [ -d $RBENV_DIR ]
    then
    cd $RBENV_DIR
    git pull
    else
    git clone https://github.com/rbenv/rbenv.git $RBENV_DIR
    echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
    echo 'eval "$(rbenv init -)"' >> ~/.bashrc
    export PATH="$HOME/.rbenv/bin:$PATH"
    eval "$(rbenv init -)"
    fi
    if [ -d $RUBY_BUILD_DIR ]
    then
    cd $RUBY_BUILD_DIR
    git pull
    else
    git clone https://github.com/rbenv/ruby-build.git $RUBY_BUILD_DIR
    echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
    export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"
    cd $RUBY_BUILD_DIR
    ./install.sh
    fi
    source ~/.bashrc
    rbenv install $RUBY_VERSION -s
    rbenv global $RUBY_VERSION

    echo installing Bundler
    echo "gem: --no-ri --no-rdoc" > ~/.gemrc
    gem install bundler -N >$LOG_SCRIPT 2>$LOG_SCRIPT

    else
    echo "*** installing Ruby from source"
    cd $DOWNLOADS
    RUBY_FILE=ruby-$RUBY_VERSION.tar.gz
    RUBY_DOWNLOADED_FILE=$DOWNLOADS/$RUBY_FILE
    if [ -f $RUBY_DOWNLOADED_FILE ]
    then
    echo "--- $RUBY_FILE already exists"
    else
    wget http://ftp.ruby-lang.org/pub/ruby/$RUBY_VERSION_PATH/ruby-$RUBY_VERSION.tar.gz
    fi

    tar -xzvf $RUBY_DOWNLOADED_FILE
    cd $DOWNLOADS/ruby-$RUBY_VERSION/
    ./configure
    make
    make install
    fi

    elif $RUBY_WITHOUT_VERSION_MANAGER
    then
    snapinstall ruby --classic --channel=$RUBY_VERSION_PATH/stable
    ruby -v

    echo installing Bundler
    echo "gem: --no-ri --no-rdoc" > ~/.gemrc
    gem install bundler -N >$LOG_SCRIPT 2>$LOG_SCRIPT
    fi

    gem install bundler -N >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT

    if $RAILS
    then
    echo "installing Rails $RAILS_VERSION"
    gem install rails -v $RAILS_VERSION -N >$LOG_SCRIPT 2>$LOG_SCRIPT
    if $RAILS
    then
    echo "installing Rails $RAILS_VERSION"
    gem install rails -v $RAILS_VERSION -N >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    fi
    fi


    @@ -451,7 +473,7 @@ then
    fi


    if $RESOLVE_TOUCHPAD
    if $TWEAKS
    then
    aptinstall Tweaks gnome-tweaks
    fi
    @@ -516,60 +538,38 @@ then
    echo -e " user = $GITHUB_USER" >> $GITCONFIG

    ssh-keygen -t rsa -b 4096 -C "$GITHUB_MAIL" -N "" -f $SSH_FOLDER/id_rsa_github
    echo ""
    echo ""
    echo "**********************"
    echo "CONFIGURE GIT USER"
    echo ""
    echo "Adicione a public ssh key em 'https://github.com/settings/ssh':"
    echo ""
    cat $SSH_FOLDER/id_rsa_github.pub
    echo ""
    echo "**********************"
    echo "" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "**********************" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "CONFIGURE GIT USER" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "Adicione a public ssh key em 'https://github.com/settings/ssh':" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    cat $SSH_FOLDER/id_rsa_github.pub >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "**********************" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT

    touch $SSHCONFIG
    echo -e "#Github (default)" >> $SSHCONFIG
    echo -e " Host github" >> $SSHCONFIG
    echo -e " HostName github.com" >> $SSHCONFIG
    echo -e " User git" >> $SSHCONFIG
    echo -e " IdentityFile $SSH_FOLDER/id_rsa_github" >> $SSHCONFIG
    fi

    if $CONFIGURE_GITLAB
    then
    ssh-keygen -t rsa -b 4096 -C "$GITLAB_MAIL" -N "" -f $SSH_FOLDER/id_rsa_gitlab
    echo ""
    echo ""
    echo "**********************"
    echo "CONFIGURE GITLAB USER"
    echo ""
    echo "Adicione a public ssh key ao GitLab:"
    echo ""
    cat $SSH_FOLDER/id_rsa_gitlab.pub
    echo ""
    echo "**********************"

    touch $SSHCONFIG
    echo -e "#Gitlab" >> $SSHCONFIG
    echo -e " Host gitlab" >> $SSHCONFIG
    echo -e " HostName $GITLAB_HOSTNAME" >> $SSHCONFIG
    echo -e " User git" >> $SSHCONFIG
    echo -e " IdentityFile $SSH_FOLDER/id_rsa_gitlab" >> $SSHCONFIG
    echo -e "#Github (default)" >> $SSHCONFIG >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo -e " Host github" >> $SSHCONFIG >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo -e " HostName github.com" >> $SSHCONFIG >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo -e " User git" >> $SSHCONFIG >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo -e " IdentityFile $SSH_FOLDER/id_rsa_github" >> $SSHCONFIG >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    fi


    if $POSTGRESQL
    then
    echo ""
    echo ""
    echo "**********************"
    echo "CONFIGURE O POSTGRES"
    echo ""
    echo "Para definir usuário e senha no PostgreSQL, execute manualmente os seguintes comandos:"
    echo "sudo -u postgres createuser NOME_DO_USUARIO -s"
    echo "sudo -u postgres psql"
    echo "\password NOME_DO_USUARIO"
    echo "**********************"
    echo "" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "**********************" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "CONFIGURE O POSTGRES" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "Para definir usuário e senha no PostgreSQL, execute manualmente os seguintes comandos:" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "sudo -u postgres createuser NOME_DO_USUARIO -s" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "sudo -u postgres psql" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "\password NOME_DO_USUARIO" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    echo "**********************" >> $LOG_SCRIPT 2>> $LOG_SCRIPT 3>> $LOG_SCRIPT
    fi

    exit
  8. danielalvarenga revised this gist Jul 29, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion script-configure-ubuntu20.04-amd64.sh
    Original file line number Diff line number Diff line change
    @@ -218,7 +218,7 @@ fi

    if $NODEJS
    then
    snapinstall NodeJS node --channel=10/stable --classic
    snapinstall NodeJS node --classic
    node -v
    fi

  9. danielalvarenga revised this gist Jun 26, 2020. 1 changed file with 25 additions and 17 deletions.
    42 changes: 25 additions & 17 deletions script-configure-ubuntu20.04-amd64.sh
    Original file line number Diff line number Diff line change
    @@ -18,7 +18,7 @@ UPGRADE_PACKAGES=false
    REQUIRED=false

    # Add different colors for $ user@host:~/folder(branch) in terminal
    COLORIZE_TERMINAL=true
    COLORIZE_TERMINAL=false
    WITH_HOST=false

    # Configure GIT
    @@ -32,12 +32,13 @@ CONFIGURE_GITLAB=false
    GITLAB_MAIL="YOUR_GITLAB_EMAIL"

    # java
    # Download file ¨jdk-8u221-linux-x64.tar.gz¨ manually: https://www.oracle.com/technetwork/java/javase/downloads/index.html
    JAVA_ORACLE_8U221_FROM_DOWNLOADS_FOLDER=false
    ORACLE_JAVA_SE=true
    JDK_FILE=jdk-14.0.1_linux-x64_bin.deb
    JDK_PATH_INSTALLATION=/usr/lib/jvm/jdk-14.0.1

    # golang
    GOLANG=false
    GO_VERSION=1.12.7
    GO_VERSION=1.12.7

    # framework javascript
    NODEJS=false
    @@ -170,22 +171,29 @@ then
    fi


    if $JAVA_ORACLE_8U221_FROM_DOWNLOADS_FOLDER
    if $ORACLE_JAVA_SE
    then
    echo "*** Removing OpenJDK"
    sudo apt-get -y remove --purge openjdk-*
    tar -xvf $DOWNLOADS/jdk-8u221-linux-x64.tar.gz
    sudo mkdir -p /usr/lib/jvm
    sudo mv $DOWNLOADS/jdk1.8.0_221 /usr/lib/jvm/
    sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_221/bin/java" 1
    sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0_221/bin/javac" 1
    sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.8.0_221/bin/javaws" 1
    sudo chmod a+x /usr/bin/java
    sudo chmod a+x /usr/bin/javac
    sudo chmod a+x /usr/bin/javaws
    sudo chown -R root:root /usr/lib/jvm/jdk1.8.0_221


    echo "*** Installing Oracle Java"
    JDK_FILE=$DOWNLOADS/$JDK_FILE
    if [ -f $JDK_FILE ]
    then
    echo ""
    else
    cd $DOWNLOADS
    wget https://download.oracle.com/otn-pub/java/jdk/14.0.1+7/664493ef4a6946b186ff29eb326336a2/$JDK_FILE
    fi
    sudo dpkg -i $JDK_FILE

    echo "*** Setting java version"
    sudo update-alternatives --install /usr/bin/java java $JDK_PATH_INSTALLATION/bin/java 1
    sudo update-alternatives --install /usr/bin/javac javac $JDK_PATH_INSTALLATION/bin/javac 1

    sudo update-alternatives --config java
    sudo update-alternatives --config javac
    sudo update-alternatives --config javaws
    java -version
    fi

    @@ -564,4 +572,4 @@ then
    echo "**********************"
    fi

    exit
    exit
  10. danielalvarenga created this gist Jun 12, 2020.
    567 changes: 567 additions & 0 deletions script-configure-ubuntu20.04-amd64.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,567 @@
    #!/bin/bash

    # Author: Daniel Alvarenga Lima
    # Ubuntu version supported: 20.04 LTS 64Bit

    # EXECUTE
    # sudo chmod +x script-configure-ubuntu18.94-amd64.sh
    # ./script-configure-ubuntu20.04-amd64.sh

    #INSTRUCTIONS
    # Change "true" por "false" to ignore software setup

    # Required only in the first time to execute this script
    UPDATE_REPOSITORIES=false
    UPGRADE_PACKAGES=false

    # build-essential, git, curl, libs
    REQUIRED=false

    # Add different colors for $ user@host:~/folder(branch) in terminal
    COLORIZE_TERMINAL=true
    WITH_HOST=false

    # Configure GIT
    CONFIGURE_GITHUB=false
    GITHUB_NAME="Daniel Alvarenga Lima"
    GITHUB_MAIL="[email protected]"
    GITHUB_USER="danielalvarenga"

    CONFIGURE_GITLAB=false
    GITLAB_HOSTNAME="YOUR_GITLAB_DOMAIN"
    GITLAB_MAIL="YOUR_GITLAB_EMAIL"

    # java
    # Download file ¨jdk-8u221-linux-x64.tar.gz¨ manually: https://www.oracle.com/technetwork/java/javase/downloads/index.html
    JAVA_ORACLE_8U221_FROM_DOWNLOADS_FOLDER=false

    # golang
    GOLANG=false
    GO_VERSION=1.12.7

    # framework javascript
    NODEJS=false

    # ruby
    RUBY_WITH_RVM=false
    RUBY_WITH_RBENV=false # only install if RUBY_WITH_RVM is false
    RUBY_WITHOUT_VERSION_MANAGER=false # only install if RUBY_WITH_RVM and RUBY_WITH_RBENV is false
    RUBY_VERSION=2.6.3
    RUBY_VERSION_PATH=2.6

    #rails
    RAILS=false
    RAILS_VERSION=5.2.3

    # text editor
    VIM=false

    # visual studio code ide
    VISUAL_STUDIO_CODE=false

    # for files compression
    COMPRESS_7ZIP=false

    # image editor
    GIMP=false

    # player and codecs
    VLC=false

    # storage
    DROPBOX=false

    # qBitTorrent
    TORRENT=false

    # online musics
    SPOTIFY=false

    # terminal
    TERMINATOR=false

    # partitions manager
    GPARTED=false

    # gerenciador de particoes
    POSTMAN=false

    # messenger
    SKYPE=false

    # google chrome web browser
    GOOGLE_CHROME=false

    # database sqlite
    SQLITE=false

    # sqlite database manager
    SQLITE_BROWSER=false

    # database postgresql
    POSTGRESQL=false

    # postgresql database manager
    PGADMIN=false

    # database redis
    REDIS=false

    # redis database manager
    REDIS_DESKTOP_MANAGER=false

    # database mysql
    MYSQL=false
    MYSQL_USER=root
    MYSQL_PASSWORD=root

    # database manager mysql
    WORKBENCH=false

    # Install Tweaks to configure right click
    # More details: https://itsfoss.com/fix-right-click-touchpad-ubuntu
    RESOLVE_TOUCHPAD=false


    # paths
    LOG_SCRIPT=./log_script.txt
    GITCONFIG=/etc/gitconfig
    SSH_FOLDER=~/.ssh
    SSHCONFIG="$SSH_FOLDER/config"
    DOWNLOADS=~/Downloads
    BASHRC=~/.bashrc
    MOUSE_CONFIG=/usr/share/X11/xorg.conf.d/52-mymods.conf
    RBENV_DIR=~/.rbenv
    RUBY_BUILD_DIR="$RBENV_DIR/plugins/ruby-build"


    function aptinstall {
    echo installing $1
    shift
    sudo apt-get -y -f install "$@" >$LOG_SCRIPT 2>$LOG_SCRIPT
    }

    function snapinstall {
    echo installing $1
    shift
    sudo snap install "$@" >$LOG_SCRIPT 2>$LOG_SCRIPT
    }


    if $UPDATE_REPOSITORIES
    then
    echo "*** Update Respositories"
    sudo apt-get update
    fi


    if $UPGRADE_PACKAGES
    then
    echo "*** Upgrade Packages"
    sudo apt-get -y upgrade
    fi


    if $REQUIRED
    then
    aptinstall "Build Essencial" build-essential
    aptinstall Git git
    aptinstall CURL curl
    fi


    if $JAVA_ORACLE_8U221_FROM_DOWNLOADS_FOLDER
    then
    sudo apt-get -y remove --purge openjdk-*
    tar -xvf $DOWNLOADS/jdk-8u221-linux-x64.tar.gz
    sudo mkdir -p /usr/lib/jvm
    sudo mv $DOWNLOADS/jdk1.8.0_221 /usr/lib/jvm/
    sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_221/bin/java" 1
    sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0_221/bin/javac" 1
    sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.8.0_221/bin/javaws" 1
    sudo chmod a+x /usr/bin/java
    sudo chmod a+x /usr/bin/javac
    sudo chmod a+x /usr/bin/javaws
    sudo chown -R root:root /usr/lib/jvm/jdk1.8.0_221
    sudo update-alternatives --config java
    sudo update-alternatives --config javac
    sudo update-alternatives --config javaws
    java -version
    fi


    if $GOLANG
    then
    echo "*** installing GOlang"
    GO_FILE=$DOWNLOADS/go$GO_VERSION.linux-amd64.tar.gz
    if [ -f $GO_FILE ]
    then
    echo ""
    else
    cd $DOWNLOADS
    wget https://dl.google.com/go/go$GO_VERSION.linux-amd64.tar.gz
    fi
    sudo tar -C /usr/local -xzf $GO_FILE
    echo '# Add GO lang path environment variable' >> $HOME/.profile
    echo 'export PATH=$PATH:/usr/local/go/bin' >> $HOME/.profile
    mkdir -p $HOME/go/src
    fi


    if $NODEJS
    then
    snapinstall NodeJS node --channel=10/stable --classic
    node -v
    fi


    if $VIM
    then
    aptinstall VIM vim
    fi


    if $VISUAL_STUDIO_CODE
    then
    snapinstall "Visual Studio Code" code --classic
    fi


    if $COMPRESS_7ZIP
    then
    aptinstall p7zip p7zip-full
    aptinstall "7zip rar extension" p7zip-rar
    fi


    if $GIMP
    then
    aptinstall Gimp gimp
    fi


    if $VLC
    then
    snapinstall VLC vlc
    fi


    if $DROPBOX
    then
    aptinstall Dropbox nautilus-dropbox
    fi


    if $TORRENT
    then
    aptinstall qBitTorrent qbittorrent
    fi


    if $SPOTIFY
    then
    snapinstall Spotify spotify
    fi


    if $TERMINATOR
    then
    aptinstall Terminator terminator
    fi


    if $GPARTED
    then
    aptinstall GParted gparted
    fi


    if $POSTMAN
    then
    snapinstall Postman postman
    fi


    if $SKYPE
    then
    snapinstall Skype skype --classic
    fi


    if $GOOGLE_CHROME
    then
    echo "*** installing Google Chrome 64bits"
    CHROME_FILE=$DOWNLOADS/google-chrome-stable_current_amd64.deb
    if [ -f $CHROME_FILE ]
    then
    echo ""
    else
    cd $DOWNLOADS
    wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
    fi
    sudo dpkg -i $CHROME_FILE
    fi


    if $SQLITE
    then
    aptinstall SQLite sqlite3 libsqlite3-dev
    fi


    if $SQLITE_BROWSER
    then
    aptinstall "SQLite Browser" sqlitebrowser
    fi


    if $POSTGRESQL
    then
    aptinstall PostgreSQL postgresql postgresql-contrib libpq-dev
    fi


    if $PGADMIN
    then
    aptinstall "PG Admin" pgadmin3
    fi


    if $MYSQL
    then
    sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password $MYSQL_USER"
    sudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $MYSQL_PASSWORD"
    aptinstall MySQL mysql-server mysql-client libmysqlclient-dev
    mysql -uroot -proot <<SQL
    CREATE USER 'rails'@'localhost';
    CREATE DATABASE activerecord_unittest DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    CREATE DATABASE activerecord_unittest2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL PRIVILEGES ON activerecord_unittest.* to 'rails'@'localhost';
    GRANT ALL PRIVILEGES ON activerecord_unittest2.* to 'rails'@'localhost';
    GRANT ALL PRIVILEGES ON inexistent_activerecord_unittest.* to 'rails'@'localhost';
    SQL
    fi


    if $WORKBENCH
    then
    echo "*** installing Workbench"
    aptinstall "Workbench dependeencies" libctemplate2v5 libgeos-3.5.0 libgeos-c1v5 libhdf4-0-alt libaec0 libsz2 libhdf5-10 libnetcdf11 libpcrecpp0v5 libpq5 libtinyxml2.6.2v5 libzip4 python-crypto python-six python-ecdsa python-paramiko
    WORKBENCH_FILE=$DOWNLOADS/mysql-workbench-community-6.3.8-1ubu1604-amd64.deb
    if [ -f $WORKBENCH_FILE ]
    then
    echo ""
    else
    cd $DOWNLOADS
    wget https://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community-6.3.8-1ubu1604-amd64.deb
    fi
    sudo dpkg -i $WORKBENCH_FILE
    fi



    if $RUBY_WITH_RVM
    then
    echo "installing RVM with RUBY $RUBY_VERSION"
    if ! type rvm >$LOG_SCRIPT 2>$LOG_SCRIPT; then
    cd
    gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
    aptinstall "RVM dependencies" gawk libsqlite3-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake libtool bison libffi-dev
    curl -sSL https://get.rvm.io | bash -s stable
    source ~/.rvm/scripts/rvm
    fi
    rvm requirements
    rvm install $RUBY_VERSION
    rvm use $RUBY_VERSION --default

    echo installing Bundler
    echo "gem: --no-ri --no-rdoc" > ~/.gemrc
    gem install bundler -N >$LOG_SCRIPT 2>$LOG_SCRIPT


    elif $RUBY_WITH_RBENV
    then
    echo "installing Rbenv with Ruby $RUBY_VERSION"
    aptinstall "Rbenv dependencies" autoconf bison libssl-dev libyaml-dev libreadline-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev
    if [ -d $RBENV_DIR ]
    then
    cd $RBENV_DIR
    git pull
    else
    git clone https://github.com/rbenv/rbenv.git $RBENV_DIR
    echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
    echo 'eval "$(rbenv init -)"' >> ~/.bashrc
    export PATH="$HOME/.rbenv/bin:$PATH"
    eval "$(rbenv init -)"
    fi
    if [ -d $RUBY_BUILD_DIR ]
    then
    cd $RUBY_BUILD_DIR
    git pull
    else
    git clone https://github.com/rbenv/ruby-build.git $RUBY_BUILD_DIR
    echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
    export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"
    cd $RUBY_BUILD_DIR
    ./install.sh
    fi
    source ~/.bashrc
    rbenv install $RUBY_VERSION -s
    rbenv global $RUBY_VERSION

    echo installing Bundler
    echo "gem: --no-ri --no-rdoc" > ~/.gemrc
    gem install bundler -N >$LOG_SCRIPT 2>$LOG_SCRIPT


    elif $RUBY_WITHOUT_VERSION_MANAGER
    then
    snapinstall ruby --classic --channel=$RUBY_VERSION_PATH/stable

    echo installing Bundler
    echo "gem: --no-ri --no-rdoc" > ~/.gemrc
    gem install bundler -N >$LOG_SCRIPT 2>$LOG_SCRIPT
    fi


    if $RAILS
    then
    echo "installing Rails $RAILS_VERSION"
    gem install rails -v $RAILS_VERSION -N >$LOG_SCRIPT 2>$LOG_SCRIPT
    fi


    if $REDIS
    then
    aptinstall Redis redis-server
    fi


    if $REDIS_DESKTOP_MANAGER
    then
    snapinstall "Redis Desktop Manager" redis-desktop-manager
    fi


    if $RESOLVE_TOUCHPAD
    then
    aptinstall Tweaks gnome-tweaks
    fi


    if $COLORIZE_TERMINAL
    then
    echo -e "" >> $BASHRC
    echo -e "# Colorize terminal" >> $BASHRC
    echo -e "function parse_git_branch () {" >> $BASHRC
    echo -e " git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'" >> $BASHRC
    echo -e "}" >> $BASHRC
    echo -e 'RED="\[\033[01;31m\]"' >> $BASHRC
    echo -e 'YELLOW="\[\033[01;33m\]"' >> $BASHRC
    echo -e 'GREEN="\[\033[01;32m\]"' >> $BASHRC
    echo -e 'BLUE="\[\033[01;34m\]"' >> $BASHRC
    echo -e 'NO_COLOR="\[\033[00m\]"' >> $BASHRC

    if $WITH_HOST
    then
    echo -e 'PS1="$GREEN\u@\h$NO_COLOR:$BLUE\w$YELLOW\$(parse_git_branch)$NO_COLOR\$ "' >> $BASHRC
    else
    echo -e 'PS1="$GREEN\u$NO_COLOR:$BLUE\w$YELLOW\$(parse_git_branch)$NO_COLOR\$ "' >> $BASHRC
    fi

    source $BASHRC
    fi


    echo "*** remove packages"
    sudo apt-get clean


    if $CONFIGURE_GITHUB
    then
    sudo rm $GITCONFIG
    sudo touch $GITCONFIG
    sudo chmod 777 $GITCONFIG
    echo -e "[user]" >> $GITCONFIG
    echo -e " name = $GITHUB_NAME" >> $GITCONFIG
    echo -e " email = $GITHUB_MAIL" >> $GITCONFIG
    echo -e "[core]" >> $GITCONFIG
    echo -e " editor = vim -f" >> $GITCONFIG
    echo -e "[alias]" >> $GITCONFIG
    echo -e " df = diff" >> $GITCONFIG
    echo -e " st = status" >> $GITCONFIG
    echo -e " cm = commit" >> $GITCONFIG
    echo -e " ch = checkout" >> $GITCONFIG
    echo -e " br = branch" >> $GITCONFIG
    echo -e " lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative" >> $GITCONFIG
    echo -e " ctags = !.git/hooks/ctags" >> $GITCONFIG
    echo -e "[color]" >> $GITCONFIG
    echo -e " branch = auto" >> $GITCONFIG
    echo -e " diff = auto" >> $GITCONFIG
    echo -e " grep = auto" >> $GITCONFIG
    echo -e " interactive = auto" >> $GITCONFIG
    echo -e " status = auto" >> $GITCONFIG
    echo -e " ui = 1" >> $GITCONFIG
    echo -e "[branch]" >> $GITCONFIG
    echo -e " autosetuprebase = always" >> $GITCONFIG
    echo -e "[github]" >> $GITCONFIG
    echo -e " user = $GITHUB_USER" >> $GITCONFIG

    ssh-keygen -t rsa -b 4096 -C "$GITHUB_MAIL" -N "" -f $SSH_FOLDER/id_rsa_github
    echo ""
    echo ""
    echo "**********************"
    echo "CONFIGURE GIT USER"
    echo ""
    echo "Adicione a public ssh key em 'https://github.com/settings/ssh':"
    echo ""
    cat $SSH_FOLDER/id_rsa_github.pub
    echo ""
    echo "**********************"

    touch $SSHCONFIG
    echo -e "#Github (default)" >> $SSHCONFIG
    echo -e " Host github" >> $SSHCONFIG
    echo -e " HostName github.com" >> $SSHCONFIG
    echo -e " User git" >> $SSHCONFIG
    echo -e " IdentityFile $SSH_FOLDER/id_rsa_github" >> $SSHCONFIG
    fi

    if $CONFIGURE_GITLAB
    then
    ssh-keygen -t rsa -b 4096 -C "$GITLAB_MAIL" -N "" -f $SSH_FOLDER/id_rsa_gitlab
    echo ""
    echo ""
    echo "**********************"
    echo "CONFIGURE GITLAB USER"
    echo ""
    echo "Adicione a public ssh key ao GitLab:"
    echo ""
    cat $SSH_FOLDER/id_rsa_gitlab.pub
    echo ""
    echo "**********************"

    touch $SSHCONFIG
    echo -e "#Gitlab" >> $SSHCONFIG
    echo -e " Host gitlab" >> $SSHCONFIG
    echo -e " HostName $GITLAB_HOSTNAME" >> $SSHCONFIG
    echo -e " User git" >> $SSHCONFIG
    echo -e " IdentityFile $SSH_FOLDER/id_rsa_gitlab" >> $SSHCONFIG
    fi


    if $POSTGRESQL
    then
    echo ""
    echo ""
    echo "**********************"
    echo "CONFIGURE O POSTGRES"
    echo ""
    echo "Para definir usuário e senha no PostgreSQL, execute manualmente os seguintes comandos:"
    echo "sudo -u postgres createuser NOME_DO_USUARIO -s"
    echo "sudo -u postgres psql"
    echo "\password NOME_DO_USUARIO"
    echo "**********************"
    fi

    exit