@@ -0,0 +1,71 @@
+#!/bin/bash
+
+MAPPINGS=(
+"cobs:CE:Adaptation:N900 nemo:devel:hw:n900"
+"cobs:CE:Adaptation:N950-N9 nemo:devel:hw:n950-n9"
+"cobs:CE:Adaptation:N9xx-common nemo:devel:hw:n9xx-common"
+"cobs:CE:Adaptation:PandaBoard nemo:devel:hw:pandaboard"
+"cobs:CE:Adaptation:x86-generic nemo:devel:hw:x86-generic"
+"cobs:CE:MW:Shared nemo:devel:mw"
+"cobs:CE:UX:MTF nemo:devel:ux"
+"cobs:CE:Apps nemo:devel:apps"
+)
+
+read_dom () {
+ local IFS=\>
+ read -d \< ENTITY CONTENT
+}
+
+get_srcmd5 () {
+
+ osc -A nobs api /source/$1/$2 | while read_dom ; do
+
+ if [[ $ENTITY = "directory" ]]; then
+ read name rev vrev srcmd5 <<< $CONTENT
+ echo $srcmd5
+ exit
+ fi
+
+ done
+
+}
+
+pkg_in () {
+ osc -A nobs ls $1 $2 >/dev/null 2>&1 && echo YES
+}
+
+main () {
+ for MAP in "${MAPPINGS[@]}"
+ do
+
+ echo "Doing $MAP"
+ read src_prj dst_prj <<< $MAP
+
+ for pkg in $(osc -A nobs ls $src_prj); do
+ if [[ "x$pkg" = "x_pattern" ]]; then
+ continue
+ fi
+
+ echo -n "Looking at $src_prj $pkg ... "
+
+ if [[ "x$(pkg_in $dst_prj $pkg)" = "xYES" ]]; then
+
+ echo -n "exists in $dst_prj ... "
+
+ if [[ "x$(get_srcmd5 $dst_prj $pkg)" = "x$(get_srcmd5 $src_prj $pkg)" ]]; then
+
+ echo "and hasn't changed. Skipping."
+ continue
+
+ fi
+ fi
+
+ echo "Copying."
+ osc -A nobs copypac $src_prj $pkg $dst_prj
+ echo
+
+ done
+ done
+}
+
+main
|