aboutsummaryrefslogtreecommitdiffstats
path: root/releasediff.sh
diff options
context:
space:
mode:
Diffstat (limited to 'releasediff.sh')
-rwxr-xr-xreleasediff.sh95
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