blob: 80028342b167a9e3a19b5fe8f19a53cf645dfd98 [file] [log] [blame]
#!/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\"`
# Stop any active memory resident server
bitbake -m
# Remove cache entries since we want to trigger a full reparse
if [ "x${s}" != "x" ]; then
rm -f ${s}/bb_cache*.dat.*
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 -f $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