diff options
author | Dave Cobbley <david.j.cobbley@linux.intel.com> | 2018-08-14 20:05:37 +0300 |
---|---|---|
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2018-08-23 04:26:31 +0300 |
commit | eb8dc40360f0cfef56fb6947cc817a547d6d9bc6 (patch) | |
tree | de291a73dc37168da6370e2cf16c347d1eba9df8 /poky/scripts/distro/distrocompare.sh | |
parent | 9c3cf826d853102535ead04cebc2d6023eff3032 (diff) | |
download | openbmc-eb8dc40360f0cfef56fb6947cc817a547d6d9bc6.tar.xz |
[Subtree] Removing import-layers directory
As part of the move to subtrees, need to bring all the import layers
content to the top level.
Change-Id: I4a163d10898cbc6e11c27f776f60e1a470049d8f
Signed-off-by: Dave Cobbley <david.j.cobbley@linux.intel.com>
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'poky/scripts/distro/distrocompare.sh')
-rwxr-xr-x | poky/scripts/distro/distrocompare.sh | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/poky/scripts/distro/distrocompare.sh b/poky/scripts/distro/distrocompare.sh new file mode 100755 index 0000000000..908760c235 --- /dev/null +++ b/poky/scripts/distro/distrocompare.sh @@ -0,0 +1,123 @@ +#!/usr/bin/env bash +# +# Copyright (c) 2017, Intel Corporation. +# All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# distrocompare.sh : provides capability to get a list of new packages +# based on two distinct branches. This script takes +# 2 parameters; either a commit-ish or a branch name +# +# To run : distrocompare.sh <older hash> <newer hash> +# E.g. distrocompare.sh morty 92aa0e7 +# E.g. distrocompare.sh morty pyro +# + +# get input as version +previous_version=$1 +current_version=$2 + +# set previous and current version +if [ -z "$2" ]; then + previous_version=$1 + current_version="current" +fi + +# get script location. That's where the source supposedly located as well. +scriptdir="$( realpath $(dirname "${BASH_SOURCE[0]}" ))" +sourcedir="$( realpath $scriptdir/../.. )" + +# create working directory +workdir=$(mktemp -d) + +# prepare to rollback to the branch if not similar +branch=`cd $sourcedir; git branch | grep \* | cut -d ' ' -f2` + +# set current workdir to store final result +currentworkdir=`pwd` + +# persists the file after local repo change +cp $scriptdir/build-recipe-list.py $workdir + +#================================================================== + +function bake_distrodata { + # get to source directory of the git + cd $sourcedir + + # change the branch / commit. Do not change if input is current + if [ "$1" != "current" ]; then + output=$(git checkout $1 2>&1) + + # exit if git fails + if [[ $output == *"error"* ]]; then + echo "git error : $output" + echo "exiting ... " + rm -rf $workdir + exit + fi + fi + + # make tmp as workdir + cd $workdir + + # source oe-init to generate a new build folder + source $sourcedir/oe-init-build-env $1 + + # if file already exists with distrodata, do not append + if ! grep -q "distrodata" "conf/local.conf"; then + # add inherit distrodata to local.conf to enable distrodata feature + echo 'INHERIT += "distrodata"' >> conf/local.conf + fi + + # use from tmp + $workdir/build-recipe-list.py generate_recipe_list +} + +bake_distrodata $previous_version +bake_distrodata $current_version + +#================================================================== + +cd $workdir + +# compare the 2 generated recipe-list.txt +$workdir/build-recipe-list.py compare_recipe $previous_version $current_version + +# copy final result to current working directory +cp $workdir/*_new_recipe_list.txt $currentworkdir + +if [ $? -ne 0 ]; then + rm -rf $workdir/$previous_version + rm -rf $workdir/$current_version + rm $workdir/build-recipe-list.py + # preserve the result in /tmp/distrodata if fail to copy the result over + exit +fi + +# cleanup +rm -rf $workdir + +# perform rollback branch +cd $sourcedir +currentbranch=`git branch | grep \* | cut -d ' ' -f2` +if [ "$currentbranch" != "$branch" ]; then + git checkout $branch +fi + +cd $currentworkdir + +#================================================================== |