summaryrefslogtreecommitdiffstats
path: root/mgasoft-publish
diff options
context:
space:
mode:
Diffstat (limited to 'mgasoft-publish')
-rwxr-xr-xmgasoft-publish67
1 files changed, 67 insertions, 0 deletions
diff --git a/mgasoft-publish b/mgasoft-publish
new file mode 100755
index 0000000..732fe45
--- /dev/null
+++ b/mgasoft-publish
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+# To the extent possible under law, the author(s) have dedicated all
+# copyright and related and neighboring rights to this software to the
+# public domain worldwide.
+# This software is distributed without any warranty.
+
+# You should have received a copy of the CC0 Public Domain Dedication
+# along with this software.
+# If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+
+. /etc/mgasoft.conf
+
+function check_softname()
+{
+ local softname="$1"
+ test -n "$softname" || return 1
+ echo "$softname" | fgrep -q .. && return 1
+ echo "$softname" | fgrep -q / && return 1
+ return 0
+}
+
+function check_softrel()
+{
+ check_softname $@
+}
+
+function update_infos()
+{
+ pushd $pubinfodir > /dev/null || exit 3
+ svn up -q
+ popd > /dev/null || exit 3
+}
+
+function publish()
+{
+ local softname="$1"
+ local softrel="$2"
+ check_softname "$softname" || return 1
+ check_softrel "$softrel" || return 1
+ pushd "$pubmirrordir/$softname" > /dev/null || exit 3
+ mgasoft tar "$softname" "$softrel"
+ #TODO: sign file
+ #TODO: upload to binrepo
+ #TODO: update sha1sum in pubinfodir
+ popd > /dev/null || exit 3
+}
+
+update_infos
+pushd "$pubinfodir" > /dev/null
+for softname in *
+do
+ pushd "$softname" > /dev/null || exit 3
+ for rel in *
+ do
+ if ! [ -d "$pubmirrordir/$softname" ]
+ then
+ mkdir "$pubmirrordir/$softname"
+ fi
+ if ! [ -f "$pubmirrordir/$softname/$softname-$rel.tar.xz" ]
+ then
+ publish "$softname" "$rel"
+ fi
+ done
+ popd > /dev/null || exit 3
+done
+popd > /dev/null