Documentation
publish:
  #!/usr/bin/env bash
  # if crate A depends on crate B, B must come before A in this list
  crates=(
    road_elf
    road_macho
    road_pe
    road
    road_internal
  )
  if [ -n "$(git status --porcelain)" ]; then
    echo "You have local changes!"
    exit 1
  fi

  pushd crates

  for crate in "${crates[@]}"
  do
    echo "Publishing ${crate}"
    cp ../docs/LICENSE-MIT "$crate"
    cp ../docs/LICENSE-APACHE "$crate"
    pushd "$crate"
    git add LICENSE-MIT LICENSE-APACHE
    cargo publish --no-verify --allow-dirty
    popd
    sleep 20
  done

  popd

  echo "Publishing root crate"
  cargo publish --allow-dirty

  echo "Cleaning local state"
  git reset HEAD --hard