diff options
Diffstat (limited to 'releasediff.sh')
-rwxr-xr-x | releasediff.sh | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/releasediff.sh b/releasediff.sh new file mode 100755 index 0000000..68ba5cb --- /dev/null +++ b/releasediff.sh @@ -0,0 +1,95 @@ +#!/bin/sh +# +# Copyright (C) 2013-2015 Paul Kocialkowski <contact@paulk.fr> +# +# 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 3 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, see <http://www.gnu.org/licenses/>. +# + +# Variables +SCRIPT=$0 +REPLICANT_DIR=$1 +RELEASE_DIR=$2 + +ARGS_COUNT=2 +COLOR=1 +REPO="../tools/repo" +METADATA="$RELEASE_DIR/metadata" + +regexp=".*path=\"\([^\"]*\)\".*revision=\"\([^\"]*\)\".*" +if [ "$COLOR" = "1" ] +then + color_start="\033[36m" + color_end="\033[0m" +else + color_start="" + color_end="" +fi + +diff_repos () { + paths=$( cat "$METADATA/manifest.xml" | grep "path=" | sed "s/$regexp/\1/g" ) + + dir=$( pwd ) + + cd "$REPLICANT_DIR" + + $REPO list | while read git_repo + do + path=$( echo "$git_repo" | sed "s/\([^ ]*\) : .*$/\1/g" ) + match=$( echo "$paths" | grep "$path" ) + if [ "$match" = "" ] + then + echo "New repository: ""$color_start""$path""$color_end" + echo "" + fi + done + + cd "$dir" + + cat "$METADATA/manifest.xml" | grep "path=" | while read line + do + path=$( echo "$line" | sed "s/$regexp/\1/g" ) + commit=$( echo "$line" | sed "s/$regexp/\2/g" ) + + if [ "$path" = "" ] || [ "$commit" = "" ] + then + break + fi + + dir=$( pwd ) + + cd "$REPLICANT_DIR/$path" + log=$( git shortlog "$commit..HEAD" ) + if [ "$log" != "" ] + then + echo "Updated repository: ""$color_start""$path""$color_end" + echo "$log" + echo "" + fi + + cd "$dir" + done +} + +print_help () { + echo "$SCRIPT: [REPLICANT_DIR] [RELEASE_DIR]" +} + +# Check for the correct number of args +if [ "$#" -lt "$ARGS_COUNT" ] +then + print_help + exit 1 +fi + +diff_repos |