#!/bin/bash
 
set -e -x

# ensure gosub is installed (this will recompile it only if necessary)
go get github.com/vito/gosub
go install github.com/vito/gosub

{
  gosub list \
    -app github.com/cloudfoundry-incubator/auctioneer/cmd/... \
    -app github.com/cloudfoundry-incubator/converger/cmd/... \
    -app github.com/cloudfoundry-incubator/docker_app_lifecycle/... \
    -app github.com/cloudfoundry-incubator/executor/cmd/... \
    -app github.com/cloudfoundry-incubator/file-server/cmd/... \
    -app github.com/cloudfoundry-incubator/buildpack_app_lifecycle/... \
    -app github.com/cloudfoundry-incubator/nsync/cmd/... \
    -app github.com/cloudfoundry-incubator/receptor/cmd/receptor \
    -app github.com/cloudfoundry-incubator/rep/cmd/... \
    -app github.com/cloudfoundry-incubator/route-emitter/cmd/... \
    -app github.com/cloudfoundry-incubator/runtime-metrics-server/cmd/... \
    -app github.com/cloudfoundry-incubator/stager/cmd/... \
    -app github.com/cloudfoundry-incubator/tps/cmd/... \
    \
    -app github.com/apcera/gnatsd \
    -app github.com/coreos/etcd

  # separate these so gosub doesn't asplode
  gosub list -test github.com/cloudfoundry-incubator/auctioneer/...
  gosub list -test github.com/cloudfoundry-incubator/converger/...
  gosub list -test github.com/cloudfoundry-incubator/docker_app_lifecycle/...
  gosub list -test github.com/cloudfoundry-incubator/executor/...
  gosub list -test github.com/cloudfoundry-incubator/file-server/...
  gosub list -test github.com/cloudfoundry-incubator/buildpack_app_lifecycle/...
  gosub list -test github.com/cloudfoundry-incubator/nsync/...
  gosub list -test github.com/cloudfoundry-incubator/receptor/...
  gosub list -test github.com/cloudfoundry-incubator/rep/...
  gosub list -test github.com/cloudfoundry-incubator/route-emitter/...
  gosub list -test github.com/cloudfoundry-incubator/runtime-metrics-server/...
  gosub list -test github.com/cloudfoundry-incubator/stager/...
  gosub list -test github.com/cloudfoundry-incubator/tps/...

  gosub list -test github.com/cloudfoundry-incubator/auction/... \
    \
    -test github.com/cloudfoundry-incubator/inigo/... \
    -test github.com/cloudfoundry-incubator/diego-smoke-tests/... \
    -test github.com/cloudfoundry-incubator/diego-acceptance-tests/... \
    -test github.com/cloudfoundry-incubator/diegocanaryapp/...

  # garden-linux uses godeps, so we should really only need its parent package
  echo github.com/cloudfoundry-incubator/garden-linux
} > /tmp/packages

cat /tmp/packages | xargs gosub sync
