Sha256: 2965eb7efdea7f35990e7868e594befc5bc37936b4949b3e9d1a0ed114c85524

Contents?: true

Size: 1.82 KB

Versions: 79

Compression:

Stored size: 1.82 KB

Contents

#!/usr/bin/env bash

# Build tools on Mac OS X host and in all vms

set -e

MAKE_TASK='all -j'

filters=()
for arg in "$@"; do
  if [[ "$arg" =~ ^([A-Z_]+)=(.*)$ ]]; then
    eval "$(printf %q=%q "${BASH_REMATCH[1]}" "${BASH_REMATCH[2]}")"
  else
    filters+=($arg)
  fi
done
filters=$(IFS='|'; echo "${filters[*]}")

passes-filter() {
  [[ '' = "$filters" ]] || [[ "$1" =~ $filters ]]
}

header() {
  printf '\033[1;7m######## %s ########\033[0m\n' "$1"
}

if [[ $(uname -s) != 'Darwin' ]]; then
  echo 'expected to run on Mac OS X'
  exit 1
fi

for arch in i386 x86_64; do
  platform="darwin-$arch"
  passes-filter "$platform" || continue
  header "$platform"

  build_dir=~_image_optim/pack

  mkdir -p "vendor/$platform"

  sudo -u _image_optim bash -c "
    set -e

    mkdir -p '$build_dir'
    cd '$build_dir'

    ln -nsf '$PWD/Makefile' '$PWD/checksums.mk' '$PWD/download' .
    rsync -aR --del '$PWD/./vendor/$platform' .

    make $MAKE_TASK ARCH=$arch
  "

  rsync -aR --del "$build_dir/./vendor/$platform" .
done

for vm in $(perl -pe "s/.*?'(.+?-.+?)'\s+=>\s+'.+?\/.+?'.*|.*/\$1/" Vagrantfile); do
  passes-filter "$vm" || continue
  header "$vm"

  [[ -n "$NO_UP" ]] || vagrant up "$vm"

  # create ssh config
  ssh_config=".vagrant/ssh_config.$vm"
  vagrant ssh-config "$vm" > "$ssh_config"

  # rsync needed files to the box
  mkdir -p "vendor/$vm"
  rsync -e "ssh -F $ssh_config" -aR --del Makefile checksums.mk download "vendor/$vm" "$vm:/vagrant"

  # sync time and run make
  ssh -F "$ssh_config" "$vm" "
    set -e

    sudo ntpdate pool.ntp.org

    cd /vagrant
    if make -v 2>&1 | grep -q GNU\ Make; then
      make $MAKE_TASK
    else
      gmake $MAKE_TASK
    fi
  "

  # rsync files in vendor from the box
  rsync -e "ssh -F $ssh_config" -aR --del "$vm:/vagrant/./vendor/$vm" .

  [[ -n "$NO_HALT" ]] || vagrant halt "$vm"
done

Version data entries

79 entries across 79 versions & 1 rubygems

Version Path
image_optim_pack-0.6.0.20201024-x86-linux script/run
image_optim_pack-0.6.0.20201024-x86-darwin script/run
image_optim_pack-0.6.0.20201024-x86_64-linux script/run
image_optim_pack-0.6.0.20201024-x86_64-darwin script/run
image_optim_pack-0.6.0.20201024 script/run
image_optim_pack-0.6.0.20200215-x86-linux script/run
image_optim_pack-0.6.0.20200215-x86-darwin script/run
image_optim_pack-0.6.0.20200215-x86_64-linux script/run
image_optim_pack-0.6.0.20200215-x86_64-darwin script/run
image_optim_pack-0.6.0.20200215 script/run
image_optim_pack-0.6.0.20200116-x86-linux script/run
image_optim_pack-0.6.0.20200116-x86-darwin script/run
image_optim_pack-0.6.0.20200116-x86_64-linux script/run
image_optim_pack-0.6.0.20200116-x86_64-darwin script/run
image_optim_pack-0.6.0.20200116 script/run
image_optim_pack-0.6.0.20191208-x86-linux script/run
image_optim_pack-0.6.0.20191208-x86-darwin script/run
image_optim_pack-0.6.0.20191208-x86_64-linux script/run
image_optim_pack-0.6.0.20191208-x86_64-darwin script/run
image_optim_pack-0.6.0.20191208 script/run