aboutsummaryrefslogtreecommitdiff
path: root/src/repos
diff options
context:
space:
mode:
Diffstat (limited to 'src/repos')
-rwxr-xr-xsrc/repos121
1 files changed, 121 insertions, 0 deletions
diff --git a/src/repos b/src/repos
new file mode 100755
index 0000000..06f59f0
--- /dev/null
+++ b/src/repos
@@ -0,0 +1,121 @@
+#!/bin/bash
+#
+# repos script got from
+# http://software.jaos.org/BUILD/slapt-get/FAQ.html#slgFAQ17
+#
+# 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 2 of the License, or
+# any later version.
+#
+# changes by rhatto at riseup.net to fit http://slack.sarava.org needs
+#
+
+function svn_add_meta {
+ find *meta -exec svn add {} 2> /dev/null \;
+ find . -name *meta -exec svn add {} 2> /dev/null \;
+}
+
+function gen_filelist {
+ for file in `find | grep -e ".tgz$"`; do ls -l $file; done > FILELIST.TXT
+ echo "Created new FILELIST.TXT"
+}
+
+function gen_packages_txt {
+ echo '' > PACKAGES.TXT
+ find . -type f -name '*.meta' -exec cat {} \; >> PACKAGES.TXT
+ cat PACKAGES.TXT | gzip -9 -c - > PACKAGES.TXT.gz
+ echo "Created new PACKAGES.TXT and PACKAGES.TXT.gz"
+}
+
+function gen_md5_checksums {
+ echo '' > CHECKSUMS.md5
+ find . -type f -name '*.tgz' -exec md5sum {} \; >> CHECKSUMS.md5
+ cat CHECKSUMS.md5 | gzip -9 -c - > CHECKSUMS.md5.gz
+ echo "Created new CHECKSUMS.md5 and CHECKSUMS.md5.gz"
+}
+
+function gen_meta {
+ if [ ! -f $1 ]; then
+ echo "File not found: $1"
+ exit 1;
+ else
+ echo "Processing $1"
+ fi
+ if [ "`echo $1|grep -E '(.*{1,})\-(.*[\.\-].*[\.\-].*).tgz[ ]{0,}$'`" == "" ]; then
+ return;
+ fi
+ NAME=$(echo $1|sed -re "s/(.*\/)(.*.tgz)$/\2/")
+ LOCATION=$(echo $1|sed -re "s/(.*)\/(.*.tgz)$/\1/")
+ SIZE=$( expr `gunzip -l $1 | tail -n 1|awk '{print $1}'` / 1024 )
+ USIZE=$( expr `gunzip -l $1 | tail -n 1|awk '{print $2}'` / 1024 )
+ REQUIRED=$(tar xzfO $1 install/slack-required 2>/dev/null|xargs -r -iZ echo -n "Z,"|sed -e "s/,$//")
+ CONFLICTS=$(tar xzfO $1 install/slack-conflicts 2>/dev/null|xargs -r -iZ echo -n "Z,"|sed -e "s/,$//")
+ SUGGESTS=$(tar xzfO $1 install/slack-suggests 2>/dev/null|xargs -r )
+ METAFILE=${NAME%tgz}meta
+ echo "PACKAGE NAME: $NAME" > $LOCATION/$METAFILE
+ if [ -n "$DL_URL" ]; then
+ echo "PACKAGE MIRROR: $DL_URL" >> $LOCATION/$METAFILE
+ fi
+ echo "PACKAGE LOCATION: $LOCATION" >> $LOCATION/$METAFILE
+ echo "PACKAGE SIZE (compressed): $SIZE K" >> $LOCATION/$METAFILE
+ echo "PACKAGE SIZE (uncompressed): $USIZE K" >> $LOCATION/$METAFILE
+ echo "PACKAGE REQUIRED: $REQUIRED" >> $LOCATION/$METAFILE
+ echo "PACKAGE CONFLICTS: $CONFLICTS" >> $LOCATION/$METAFILE
+ echo "PACKAGE SUGGESTS: $SUGGESTS" >> $LOCATION/$METAFILE
+ echo "PACKAGE DESCRIPTION:" >> $LOCATION/$METAFILE
+ tar xzfO $1 install/slack-desc | grep -E '\w+\:'|grep -v '^#' >> $LOCATION/$METAFILE
+ echo "" >> $LOCATION/$METAFILE
+}
+
+function do_all {
+ for pkg in `find . -type f -name '*.tgz' -print`; do
+ gen_meta $pkg
+ done
+ $0 PACKAGESTXT
+ $0 FILELIST
+ $0 MD5
+}
+
+function show_usage {
+ echo "`basename $0` [pkg [file]|all|new|svnmeta|PACKAGESTXT|FILELIST|MD5]"
+}
+
+case "$1" in
+ pkg)
+ if [ -n "$2" ]; then
+ gen_meta $2
+ else
+ show_usage
+ fi
+ ;;
+ all)
+ do_all
+ ;;
+ new)
+ for pkg in `find . -type f -name '*.tgz' -print`; do
+ if [ ! -f ${pkg%tgz}meta ]; then
+ gen_meta $pkg
+ fi
+ done
+ ;;
+ svnmeta)
+ svn_add_meta
+ ;;
+ PACKAGESTXT)
+ gen_packages_txt
+ ;;
+ FILELIST)
+ gen_filelist
+ ;;
+ MD5)
+ gen_md5_checksums
+ ;;
+ usage)
+ show_usage
+ ;;
+ *)
+ do_all
+ svn_add_meta
+ ;;
+esac