#!/usr/bin/env bash

# TODO(pascallouis): better automate this.

set -euxo pipefail

if [ ! -x "${FUCHSIA_DIR}" ]; then
  echo "error: did you fx exec? missing \$FUCHSIA_DIR" 1>&2
  exit 1
fi

if [ ! -x "${FUCHSIA_BUILD_DIR}" ]; then
  echo "error: did you fx exec? missing \$FUCHSIA_BUILD_DIR" 1>&2
  exit 1
fi

pushd "$FUCHSIA_DIR"

FIDLC=host_x64/fidlc
FIDLGEN_GO=host_x64/fidlgen_go

fx build zircon/tools
fx ninja -C "${FUCHSIA_BUILD_DIR}" $FIDLC $FIDLGEN_GO

tmpout=$(mktemp -d 2>/dev/null || mktemp -d -t 'tmpout')
ir_file="${tmpout}/out.json"

trap 'rm -rf -- "${tmpout}" && popd > /dev/null' EXIT

# Parameters:
# $1 = directory where fidl file is found.
# $2 =  output of subdirectory of syscall/zx
# $3..n = additional arguments needed to generate this target.
function generate_file {
  local source_dir=$1
  shift
  local package_dir=$1
  shift
  out_file=third_party/go/src/syscall/zx/"${package_dir}"/impl.go
  copyright_line=$(grep -E "^// Copyright [0-9]+" "${out_file}" || \
    echo "// Copyright $(date +%Y) The Fuchsia Authors. All rights reserved.")
  "${FUCHSIA_BUILD_DIR}"/$FIDLC \
    --json "${ir_file}" \
    "$@" \
    --files "${source_dir}"/*.fidl
  "${FUCHSIA_BUILD_DIR}"/$FIDLGEN_GO \
    -json "${ir_file}" \
    -output-impl "${tmpout}/impl.go"

  tmpfile=$(mktemp "${tmpout}/tmp.XXXXXXXX")
  echo "${copyright_line}" > "${tmpfile}"
  cat << EOF >> "${tmpfile}"
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Code generated by third_party/go/regen-fidl; DO NOT EDIT.

// +build fuchsia
EOF
  cat "${tmpout}"/impl.go >> "${tmpfile}"
  perl -pi -e 's|^// Code generated by fidlgen; DO NOT EDIT.\n$||' "${tmpfile}"
  perl -pi -e 's|fidl/fuchsia/|syscall/zx/|' "${tmpfile}"
  ./prebuilt/third_party/go/linux-x64/bin/gofmt -s -w "${tmpfile}"
  mv -- "${tmpfile}" "${out_file}"
}

generate_file {third_party/go/src/syscall/zx/,}fidl/internal/bindingstest \
  --experimental enable_handle_rights \
  --files zircon/vdso/zx_common.fidl

generate_file sdk/fidl/fuchsia.mem mem \
  --files zircon/vdso/zx_common.fidl

generate_file sdk/fidl/fuchsia.io io \
  --files zircon/vdso/zx_common.fidl \
  --files sdk/fidl/fuchsia.mem/*.fidl

generate_file sdk/fidl/fuchsia.posix posix

generate_file sdk/fidl/fuchsia.posix.socket posix/socket \
  --files zircon/vdso/zx_common.fidl \
  --files sdk/fidl/fuchsia.posix/*.fidl \
  --files sdk/fidl/fuchsia.net/*.fidl \
  --files sdk/fidl/fuchsia.mem/*.fidl \
  --files sdk/fidl/fuchsia.io/*.fidl

generate_file sdk/fidl/fuchsia.hardware.ethernet hardware/ethernet \
  --files zircon/vdso/zx_common.fidl

generate_file sdk/fidl/fuchsia.hardware.network hardware/network \
  --files zircon/vdso/zx_common.fidl \
  --files sdk/fidl/fuchsia.net/*.fidl

generate_file sdk/fidl/fuchsia.net.name net/name \
  --files zircon/vdso/zx_common.fidl \
  --files sdk/fidl/fuchsia.net/*.fidl

generate_file sdk/fidl/fuchsia.net net

generate_file sdk/fidl/fuchsia.diagnostics diagnostics \
  --files zircon/vdso/zx_common.fidl \
  --files sdk/fidl/fuchsia.mem/*.fidl

generate_file sdk/fidl/fuchsia.logger logger \
  --files zircon/vdso/zx_common.fidl \
  --files sdk/fidl/fuchsia.mem/*.fidl \
  --files sdk/fidl/fuchsia.diagnostics/*.fidl

generate_file sdk/fidl/fuchsia.net.stack net/stack \
  --files zircon/vdso/zx_common.fidl \
  --files sdk/fidl/fuchsia.mem/*.fidl \
  --files sdk/fidl/fuchsia.io/*.fidl \
  --files sdk/fidl/fuchsia.diagnostics/*.fidl \
  --files sdk/fidl/fuchsia.logger/*.fidl \
  --files sdk/fidl/fuchsia.net/*.fidl \
  --files sdk/fidl/fuchsia.net.name/*.fidl \
  --files sdk/fidl/fuchsia.hardware.ethernet/*.fidl \
  --files sdk/fidl/fuchsia.hardware.network/*.fidl \
  --files sdk/fidl/fuchsia.posix/*.fidl \
  --files sdk/fidl/fuchsia.posix.socket/*.fidl

