Sha256: 128f77b1dcc327ad373fe17553111b4c99cabc247695477d93cc781a58902e5f

Contents?: true

Size: 1.83 KB

Versions: 24

Compression:

Stored size: 1.83 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 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 --set-home 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 | uniq); 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

24 entries across 24 versions & 1 rubygems

Version Path
image_optim_pack-0.9.0-x86-linux script/run
image_optim_pack-0.9.0-x86_64-linux script/run
image_optim_pack-0.9.0-x86_64-darwin script/run
image_optim_pack-0.9.0 script/run
image_optim_pack-0.8.0.20220418 script/run
image_optim_pack-0.8.0.20220418-x86_64-linux script/run
image_optim_pack-0.8.0.20220418-x86_64-darwin script/run
image_optim_pack-0.8.0.20220418-x86-linux script/run
image_optim_pack-0.8.0.20220131-x86-linux script/run
image_optim_pack-0.8.0.20220131-x86_64-linux script/run
image_optim_pack-0.8.0.20220131-x86_64-darwin script/run
image_optim_pack-0.8.0.20220131 script/run
image_optim_pack-0.8.0.20220117-x86-linux script/run
image_optim_pack-0.8.0.20220117-x86_64-linux script/run
image_optim_pack-0.8.0.20220117-x86_64-darwin script/run
image_optim_pack-0.8.0.20220117 script/run
image_optim_pack-0.8.0.20211116-x86-linux script/run
image_optim_pack-0.8.0.20211116-x86_64-linux script/run
image_optim_pack-0.8.0.20211116-x86_64-darwin script/run
image_optim_pack-0.8.0.20211116 script/run