#!/bin/bash

if [ ! -d hardware/interfaces ] ; then
  echo "Where is hardware/interfaces?";
  exit 1;
fi

packages=$(pushd hardware/interfaces > /dev/null; \
           find . -type f -name \*.hal -exec dirname {} \; | sort -u | \
           cut -c3- | \
           awk -F'/' \
                '{printf("android.hardware"); for(i=1;i<NF;i++){printf(".%s", $i);}; printf("@%s\n", $NF);}'; \
           popd > /dev/null)

for p in $packages; do
  echo "Updating $p";
  hidl-gen -Lmakefile -r android.hardware:hardware/interfaces $p;
  hidl-gen -Landroidbp -r android.hardware:hardware/interfaces $p;
done

# subdirectories of hardware/interfaces which contain an Android.bp file
android_dirs=$(find hardware/interfaces/*/     \
              -name "Android.bp"               \
              -printf "%h\n"                   \
              | cut -d "/" -f1-3               \
              | sort | uniq)

echo "Updating Android.bp files."

for bp_dir in $android_dirs; do
  bp="$bp_dir/Android.bp"
  # locations of Android.bp files in specific subdirectory of hardware/interfaces
  android_bps=$(find $bp_dir                   \
                -name "Android.bp"             \
                ! -path $bp_dir/Android.bp     \
                -printf "%h\n"                 \
                | sort)

  echo "// This is an autogenerated file, do not edit." > "$bp";
  echo "subdirs = [" >> "$bp";
  for a in $android_bps; do
    echo "    \"${a#$bp_dir/}\"," >> "$bp";
  done
  echo "]" >> "$bp";
done
