#!/bin/bash
set -ex

# Install dartdoc.
pub global activate dartdoc

# Generate flutter docs into dev/docs/doc/api/.
(cd dev/tools; pub get)

# This script generates a unified doc set, and creates
# a custom index.html, placing everything into dev/docs/doc
dart dev/tools/dartdoc.dart

# Ensure google webmaster tools can verify our site.
cp dev/docs/google2ed1af765c529f57.html dev/docs/doc

# Upload the docs.
if [ "$1" = "--upload" ]; then
  # This isn't great, because we're uploading our files twice. But,
  # we're ensuring we're not leaving any deleted files on the server.
  # And we're ensuring we're compressing text files.
  # Unfortunately, rsync can't set Content-Encoding for a subset of files,
  # and rsync can't run in a "only delete files on server that are no
  # longer in the local source dir".

  # Ensure files on server are deleted when no longer in local generated source.
  gsutil -m rsync -d -r dev/docs/doc/ gs://docs.flutter.io/

  # Ensure compressable files are gzipped and then stored.
  gsutil -m cp -r -z "js,json,html,css" dev/docs/doc/* gs://docs.flutter.io/
fi
