#!/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 new_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.io.admin io/admin \
  --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

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.mem/*.fidl \
  --files sdk/fidl/fuchsia.io2/*.fidl \
  --files sdk/fidl/fuchsia.io/*.fidl \
  --files sdk/fidl/fuchsia.net/*.fidl \
  --files sdk/fidl/fuchsia.hardware.network/*.fidl \
  --files sdk/fidl/fuchsia.net.interfaces/*.fidl \
  --files sdk/fidl/fuchsia.posix/*.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.net/*.fidl \
  --files sdk/fidl/fuchsia.hardware.ethernet/*.fidl \
  --files sdk/fidl/fuchsia.hardware.network/*.fidl \
  --files sdk/fidl/fuchsia.net.interfaces/*.fidl \
  --files sdk/fidl/fuchsia.net.name/*.fidl
