text: #!/usr/bin/env bash
  #
  # SPDX-License-Identifier: GPL-2.0-only
  #
  
  help ()
  {
      base=`basename $0`
      echo -e "Usage: $base command"
      echo "Avaliable commands:"
      echo -e "\texport <file.conf>: export and lock down the AUTOPR values from the PR service into a file for release."
      echo -e "\timport <file.conf>: import the AUTOPR values from the exported file into the PR service."
  }
  
  clean_cache()
  {
      s=`bitbake -e | grep ^CACHE= | cut -f2 -d\"`
      if [ "x${s}" != "x" ]; then
          rm -rf ${s}
      fi
  }
  
  do_export ()
  {
      file=$1
      [ "x${file}" == "x" ] && help && exit 1
      rm -f ${file}
  
      clean_cache
      bitbake -R conf/prexport.conf -p
      s=`bitbake -R conf/prexport.conf -e | grep ^PRSERV_DUMPFILE= | cut -f2 -d\"`
      if [ "x${s}" != "x" ];
      then
         [ -e $s ] && mv -f $s $file && echo "Exporting to file $file succeeded!"
         return 0
      fi
      echo "Exporting to file $file failed!"
      return 1
  }
  
  do_import ()
  {
      file=$1
      [ "x${file}" == "x" ] && help && exit 1
  
      clean_cache
      bitbake -R conf/primport.conf -R $file -p
      ret=$?
      [ $ret -eq 0 ] && echo "Importing from file $file succeeded!" || echo "Importing from file $file failed!"
      return $ret
  }
  
  do_migrate_localcount ()
  {
      df=`bitbake -R conf/migrate_localcount.conf -e | \
                  grep ^LOCALCOUNT_DUMPFILE= | cut -f2 -d\"`
      if [ "x${df}" == "x" ];
      then
          echo "LOCALCOUNT_DUMPFILE is not defined!"
          return 1
      fi
  
      rm -rf $df
      clean_cache
      echo "Exporting LOCALCOUNT to AUTOINCs..."
      bitbake -R conf/migrate_localcount.conf -p
      [ ! $? -eq 0 ] && echo "Exporting to file $df failed!" && exit 1
  
      if [ -e $df ];
      then
          echo "Exporting to file $df succeeded!"
      else
          echo "Exporting to file $df failed!"
          exit 1
      fi
      
      echo "Importing generated AUTOINC entries..."
      [ -e $df ] && do_import $df
  
      if [ ! $? -eq 0 ]
      then
          echo "Migration from LOCALCOUNT to AUTOINCs failed!"
          return 1
      fi
  
      echo "Migration from LOCALCOUNT to AUTOINCs succeeded!"
      return 0
  }
  
  [ $# -eq 0 ] && help  && exit 1
  
  case $2 in
  *.conf|*.inc)
      ;;
  *)
      echo ERROR: $2 must end with .conf or .inc!
      exit 1
      ;;
  esac
  
  case $1 in
  export)
      do_export $2
      ;;
  import)
      do_import $2
      ;;
  migrate_localcount)
      do_migrate_localcount
      ;;
  *)
      help
      exit 1
      ;;
  esac
  