#!/bin/bash

TMP_LOG_FILE=./_tmp_log

clean() {
  if [[ -f $1 ]]; then
    rm -rf $1
  fi
}

check_and_echo_lines() {
  TO_BE_CHECKED_LINE=$1
  CHECK_FILE=$2
  RET=`grep -xc "$TO_BE_CHECKED_LINE" $CHECK_FILE`
  if [ "1" != "$RET" ] ; then
    echo "$TO_BE_CHECKED_LINE" >> $CHECK_FILE
  fi
}

check_file_has_dup_line() {
  TMP_NAME=`basename $1`
  TMP_FILE=./_tmp_kos_$TMP_NAME
  echo "----------------------- Checking $TMP_NAME...------------------------------"
  clean $TMP_FILE
  touch $TMP_FILE
  modules_ramdisk_array=($(cat $1))
  num_array=${#modules_ramdisk_array[@]}
  [[ $num_array -eq 0 ]] && return
  for MODULE in "${modules_ramdisk_array[@]}"
  do
    module_file=($(find . -name $MODULE))
    if [ "$module_file" != "" ]; then
      TMP_KO_NAME=`basename $module_file`
      check_and_echo_lines "$TMP_KO_NAME" $TMP_FILE
    fi
  done
  
  HAS_DIFF=`diff -q $TMP_FILE $1`
  if [ "$HAS_DIFF" = "" ]; then
    clean $TMP_FILE
    return 0
  fi
  DIFF_RET=`diff -y $TMP_FILE $1`
  echo "++++++++++++++++ Your configs $1 has duplicate lines +++++++++++++++++++" >> $TMP_LOG_FILE
  echo "$DIFF_RET" >> $TMP_LOG_FILE
  echo "++++++++++++++++++++++++++++++++ end +++++++++++++++++++++++++++++++++++" >> $TMP_LOG_FILE
  clean $TMP_FILE
  return 1
}

clean $TMP_LOG_FILE

check_file_has_dup_line res/vendor_modules.load
check_file_has_dup_line res/vendor_ramdisk_modules.load
check_file_has_dup_line res/recovery_modules.load

if [[ -f $TMP_LOG_FILE ]]; then
  cat $TMP_LOG_FILE
  clean $TMP_LOG_FILE
  exit 1
else
  clean $TMP_LOG_FILE
  exit 0
fi


#ssh -x -p 29418 robot_verifier@10.10.10.29 gerrit review --project $CTS_GERRIT_PROJECT $CTS_GERRIT_PATCHSET_REVISION --message "'$CTS_RET_MESSAGE'"