### DON'T MODIFY ANYTHING BELOW THIS LINE! ##################################### # This setup script was generated with setup_script_generator <%= version %>, # available on RubyGems. # # To regenerate this section, install the gem and run: # <% if provisions.any? -%> # generate-setup <%= provisions.map { |p| "-p #{p.name}" }.join(" ") %> <% else -%> # generate-setup <% end -%> # # --- SETUP -------------------------------------------------------------------- something_already_printed=0 determine-platform() { local uname=$(uname) if [[ $uname == 'Darwin' ]]; then echo 'mac' else echo 'linux' fi } banner() { print-with-color 34 "== $@ ==" } success() { print-with-color 32 "$@" } warning() { print-with-color 33 "$@" } error() { print-with-color 31 "$@" } print-with-color() { pad-from-existing-output echo -ne "\033[${1}m" echo -n "${@:2}" echo -e "\033[0m" something_already_printed=1 } print-wrapped() { pad-from-existing-output echo -n "$@" | fmt -w 80 | cat something_already_printed=1 } pad-from-existing-output() { if [[ $something_already_printed -eq 1 ]]; then echo fi } print() { pad-from-existing-output echo "$@" something_already_printed=1 } has-executable() { type "$1" &>/dev/null } is-running() { pgrep "$1" >/dev/null } start() { if has-executable brew; then brew services start "$1" else sudo service "${2:-$1}" start fi } install() { local apt_package="" local rpm_package="" local brew_package="" local default_package="" local package="" for arg in "$@"; do case $arg in apt=*) apt_package="${arg#apt=}" ;; rpm=*) rpm_package="${arg#rpm=}" ;; brew=*) brew_package="${arg#brew=}" ;; *) default_package="$arg" ;; esac done if has-executable brew; then package="${brew_package:-$default_package}" if [[ -n $package ]]; then brew install "$package" fi elif has-executable apt-get; then package="${apt_package:-$default_package}" if [[ -n $package ]]; then sudo apt-get install -y "$package" fi elif has-executable yum; then package="${rpm_package:-$default_package}" if [[ -n $package ]]; then sudo yum install -y "$package" fi else error "Sorry, I'm not sure how to install $default_package." exit 1 fi } check-for-package-manager() { local platform=$(determine-platform) if [[ $platform == "linux" ]] && ! has-executable apt-get && ! has-executable yum; then # TODO: Check if build-essential is installed on Debian? # TODO: Check if 'Development Tools' group is installed on RedHat? error "You don't seem to have a package manager installed." print-wrapped "\ This setup script assumes you're using a flavor of Linux derived from Debian or RedHat (i.e. something with Apt or Yum). If this is not the case, then we would gladly take a PR fixing this!" exit 1 elif [[ $platform == "mac" ]] && ! has-executable brew; then # TODO: Check that OS X Command Line Tools are installed? error "You don't seem to have Homebrew installed." print-wrapped "\ Visit and follow the instructions there, then re-run this script." exit 1 fi } install-development-libraries() { install rpm=zlib-devel } setup() { cd "$(dirname "$(dirname "$0")")" check-for-package-manager <%# TODO: Check if build-essential is installed on Debian? -%> install-development-libraries <% if provisions.any? -%> run-provisions <% end -%> if type provision-project &>/dev/null; then provision-project fi success "Setup complete!" } <% provisions.each do |provision| -%> # --- <%= provision.name.upcase %> <%= '-' * (73 - provision.name.length) %> <%= provision.code -%> <% end -%> <% if provisions.any? -%> run-provisions() { <% provisions.each do |provision| -%> provision-<%= provision.name %> <% end -%> if type provision-project &>/dev/null; then provision-project fi } <% end -%> # --- FIN ---------------------------------------------------------------------- setup