1#!/usr/bin/env bash 2# 3# Copyright OpenEmbedded Contributors 4# 5# SPDX-License-Identifier: GPL-2.0-only 6# 7 8help () 9{ 10 base=`basename $0` 11 echo -e "Usage: $base command" 12 echo "Avaliable commands:" 13 echo -e "\texport <file.conf>: export and lock down the AUTOPR values from the PR service into a file for release." 14 echo -e "\timport <file.conf>: import the AUTOPR values from the exported file into the PR service." 15} 16 17clean_cache() 18{ 19 s=`bitbake -e | grep ^CACHE= | cut -f2 -d\"` 20 # Stop any active memory resident server 21 bitbake -m 22 # Remove cache entries since we want to trigger a full reparse 23 if [ "x${s}" != "x" ]; then 24 rm -f ${s}/bb_cache*.dat.* 25 fi 26} 27 28do_export () 29{ 30 file=$1 31 [ "x${file}" == "x" ] && help && exit 1 32 rm -f ${file} 33 34 clean_cache 35 bitbake -R conf/prexport.conf -p 36 s=`bitbake -R conf/prexport.conf -e | grep ^PRSERV_DUMPFILE= | cut -f2 -d\"` 37 if [ "x${s}" != "x" ]; 38 then 39 [ -e $s ] && mv -f $s $file && echo "Exporting to file $file succeeded!" 40 return 0 41 fi 42 echo "Exporting to file $file failed!" 43 return 1 44} 45 46do_import () 47{ 48 file=$1 49 [ "x${file}" == "x" ] && help && exit 1 50 51 clean_cache 52 bitbake -R conf/primport.conf -R $file -p 53 ret=$? 54 [ $ret -eq 0 ] && echo "Importing from file $file succeeded!" || echo "Importing from file $file failed!" 55 return $ret 56} 57 58do_migrate_localcount () 59{ 60 df=`bitbake -R conf/migrate_localcount.conf -e | \ 61 grep ^LOCALCOUNT_DUMPFILE= | cut -f2 -d\"` 62 if [ "x${df}" == "x" ]; 63 then 64 echo "LOCALCOUNT_DUMPFILE is not defined!" 65 return 1 66 fi 67 68 rm -f $df 69 clean_cache 70 echo "Exporting LOCALCOUNT to AUTOINCs..." 71 bitbake -R conf/migrate_localcount.conf -p 72 [ ! $? -eq 0 ] && echo "Exporting to file $df failed!" && exit 1 73 74 if [ -e $df ]; 75 then 76 echo "Exporting to file $df succeeded!" 77 else 78 echo "Exporting to file $df failed!" 79 exit 1 80 fi 81 82 echo "Importing generated AUTOINC entries..." 83 [ -e $df ] && do_import $df 84 85 if [ ! $? -eq 0 ] 86 then 87 echo "Migration from LOCALCOUNT to AUTOINCs failed!" 88 return 1 89 fi 90 91 echo "Migration from LOCALCOUNT to AUTOINCs succeeded!" 92 return 0 93} 94 95[ $# -eq 0 ] && help && exit 1 96 97case $2 in 98*.conf|*.inc) 99 ;; 100*) 101 echo ERROR: $2 must end with .conf or .inc! 102 exit 1 103 ;; 104esac 105 106case $1 in 107export) 108 do_export $2 109 ;; 110import) 111 do_import $2 112 ;; 113migrate_localcount) 114 do_migrate_localcount 115 ;; 116*) 117 help 118 exit 1 119 ;; 120esac 121