| #!/usr/bin/env bash |
| # |
| # Copyright OpenEmbedded Contributors |
| # |
| # 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 |