#!/usr/bin/env bash
# Copyright 2021 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# 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=$( fx list-build-artifacts --expect-one --name fidlc tools )
FIDLGEN_GO=$( fx list-build-artifacts --expect-one --name fidlgen_go 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 \
    --experimental old_syntax_only \
    --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.

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 \
  --files zircon/vdso/zx_common.fidl zircon/vdso/rights.fidl

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

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

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

generate_file sdk/fidl/fuchsia.posix posix

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

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

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

generate_file sdk/fidl/fuchsia.net.name net/name \
  --files zircon/vdso/zx_common.fidl zircon/vdso/rights.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 zircon/vdso/rights.fidl \
  --files sdk/fidl/fuchsia.mem/*.fidl

generate_file sdk/fidl/fuchsia.logger logger \
  --files zircon/vdso/zx_common.fidl zircon/vdso/rights.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 zircon/vdso/rights.fidl \
  --files sdk/fidl/fuchsia.mem/*.fidl \
  --files sdk/fidl/fuchsia.io2/*.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

