summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--functions16
-rw-r--r--mga-move-update64
-rw-r--r--mgatools.conf6
3 files changed, 86 insertions, 0 deletions
diff --git a/functions b/functions
new file mode 100644
index 0000000..d612ce3
--- /dev/null
+++ b/functions
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+. /etc/mgatools.conf
+
+function isingroup()
+{
+ grp="$1"
+ for group in `groups`
+ do if [ "$grp" = "$group" ]
+ then
+ return 0
+ fi
+ done
+ return 1
+}
+
diff --git a/mga-move-update b/mga-move-update
new file mode 100644
index 0000000..3d5e3d9
--- /dev/null
+++ b/mga-move-update
@@ -0,0 +1,64 @@
+#!/bin/sh
+
+. /usr/share/mgatools/functions
+moveupdate_allowed_group=mga-qa
+
+dryrun=echo
+
+if ! isingroup "$allowed_group"
+then
+ echo "You are not in group $allowed_group"
+ exit 1
+fi
+
+distrorelease="$1"
+section="$2"
+srcname="$3"
+if test -z $distrorelease || test -z $section || test -z $srcname
+then
+ echo 'Missing argument' >&2
+ exit 1
+fi
+
+for file in "$distribdir/$distrorelease/SRPMS/$section/updates_testing/"*.rpm
+do
+ fname=$(rpm -qp --qf '%{NAME}' "$file")
+ if [ a"$fname" = a"$srcname" ]
+ then
+ srcpkg=$(basename "$file")
+ break
+ fi
+done
+
+if [ -z $srcpkg ]
+then
+ echo "The package $srcname could not be found in $distrorelease/$section/updates_testing repository." >&2
+ exit 2
+fi
+
+function movepkg()
+{
+ srcdir="$1"
+ destdir="$2"
+ srcpkg="$3"
+ output="$4"
+
+ for file in "$srcdir/"*.rpm
+ do
+ fname=$(rpm -qp --qf '%{SOURCERPM}' "$file")
+ if [ a"$fname" = a"$srcpkg" ]
+ then
+ $dryrun mv -v -f "$file" "$destdir" >> "$output"
+ fi
+ done
+}
+
+mailcontent=$(mktemp)
+for arch in $arches
+do
+ movepkg "$distribdir/$distrorelease/$arch/media/$section/updates_testing" "$distribdir/$distrorelease/$arch/media/$section/updates/" "$srcpkg" "$mailcontent"
+ movepkg "$distribdir/$distrorelease/$arch/media/debug/$section/updates_testing" "$distribdir/$distrorelease/$arch/media/debug/$section/updates/" "$srcpkg" "$mailcontent"
+done
+
+rm -f "$mailcontent"
+
diff --git a/mgatools.conf b/mgatools.conf
new file mode 100644
index 0000000..8f8304d
--- /dev/null
+++ b/mgatools.conf
@@ -0,0 +1,6 @@
+moveupdate_allowed_group=mga-qa
+moveupdate_mailto=qa-report@ml.mageia.org
+distribdir=/distrib/bootstrap/distrib
+distroreleases='1'
+distrosections='core nonfree tainted'
+arches='i586 x86_64'