diff options
author | Aaron Griffin <aaronmgriffin@gmail.com> | 2008-04-15 19:19:30 +0200 |
---|---|---|
committer | Aaron Griffin <aaronmgriffin@gmail.com> | 2008-04-15 19:19:30 +0200 |
commit | c3c08ee41c01b0beb2f53d7e75cf089dfbae9f99 (patch) | |
tree | ea19a9fa4d1c131db915e4887f1e9f56fa980531 /db-inc | |
parent | e685ac2accb50e575492372c3f73e500039a7a6b (diff) | |
download | dbscripts-c3c08ee41c01b0beb2f53d7e75cf089dfbae9f99.tar.gz dbscripts-c3c08ee41c01b0beb2f53d7e75cf089dfbae9f99.tar.xz |
Switch to proper script usage
Switch to a callable script in place of an include file
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
Diffstat (limited to 'db-inc')
-rw-r--r-- | db-inc | 179 |
1 files changed, 0 insertions, 179 deletions
@@ -1,179 +0,0 @@ -#!/bin/bash - -# where are the arch scripts located? -ARCHDIR="/arch" - -#All this fun stuff used to be in the db-(whatever) files -# Let's make it cleaner -export CARCH="$arch" -ftppath="/home/ftp/$reponame/os/$arch/" -svnpath="/home/svn-packages" -svnrepo="$reponame-$arch" - -#Hacky for now -if [ "$arch" = "x86_64" ]; then - stagedir="$HOME/staging/${reponame}64" -else - stagedir="$HOME/staging/$reponame" -fi - -WORKDIR="~/.dbscripts" -CHECKOUTDIR="$WORKDIR/checkout" -LOCKFILE="/tmp/.repolck.$arch.$repoid" -DBFILE="$WORKDIR/$reponame.db.tar.gz" - -if [ ! `type -p fakeroot` ]; then - echo "error: fakeroot is missing" >&2 - exit 1 -fi - -if [ ! -d $stagedir ]; then - echo "error: staging directory missing: $stagedir" >&2 - exit 1 -fi - -# Get the package name from the filename -# hackish, but should work for now -getpkgname() { - local tmp - - tmp=${1##*/} - tmp=${tmp%.pkg.tar.gz} - tmp=${tmp%-i686} - tmp=${tmp%-x86_64} - echo ${tmp%-*-*} -} - -cleanup() { - # unlock - rm -f "$LOCKFILE" - [ "$1" ] && exit $1 -} - -ctrl_c() { - echo "Interrupted" >&2 - cleanup 0 -} - -die() { - echo "$*" >&2 - cleanup 1 -} - -# check for locks -if [ -f "$LOCKFILE" ]; then - owner=$(/bin/ls -l $LOCKFILE | /bin/awk '{print $3}') - echo "error: db generation is already in progress (started by $owner)" - exit 1 -fi - -# catch ^C breaks -trap ctrl_c SIGINT -# lock -touch "$LOCKFILE" - -if [ -d $CHECKOUTDIR ]; then - cd $CHECKOUTDIR - svn update - if [ $? -gt 0 ]; then - die "==> SVN update failed, aborting!" - fi -else - echo "==> Checking out repo: $svnrepo ($arch) - Please be patient" - svn checkout file://$svnpath $CHECKOUTDIR - if [ $? -gt 0 ]; then - die "==> SVN checkout failed, aborting!" - fi -fi - -cd $CHECKOUTDIR - -# Checkout the SVN module if we need to -updatelists= -if [ "`ls $stagedir/add 2>/dev/null`" -o "`ls $stagedir/del 2>/dev/null`" ]; then - updatelists=1 -else - echo "No files to process" - cleanup 0 -fi - -# Right-O, now we look through the "add" and "del" subdirectories of -# $stagedir and process the packages there accordingly -- all packages -# in the "add" dir are added/updated, all packages in the "del" dir -# are removed. -# -# This means the sync db could actually be unpacked/repacked twice in -# one db-* invocation, but it's not a huge performance hit. - -if [ -d $stagedir/add -a "`ls $stagedir/add`" ]; then - echo "==> Processing new/updated packages for repository '$reponame'..." >&2 - - # copy the db file into our working area - cp $ftppath/$reponame.db.tar.gz $DBFILE - - cd $stagedir/add - # run it thru fakeroot make sure everything is owned by root.root - echo "$ARCHDIR/updatesync-many add $DBFILE $CHECKOUTDIR $svnrepo" | fakeroot - - if [ $? -ne 0 ]; then - die "==> Error returned from updatesync-many" - fi - - cp $DBFILE $ftppath - - # only for i686 (for now) - if [ "$arch" = "i686" ]; then - echo "==> Scanning for New/Updated packages..." >&2 - cd $stagedir/add - $ARCHDIR/pkgdb1 $CHECKOUTDIR $svnrepo | $ARCHDIR/pkgdb2-add $repoid $stagedir/add - fi - - # move the package files into the ftp directory - mv -f $stagedir/add/*.pkg.tar.gz $ftppath -fi - -if [ -d $stagedir/del -a "`ls $stagedir/del`" ]; then - echo "==> Processing deleted packages for repository '$reponame'..." >&2 - - # copy the db file into our working area - cp $ftppath/$reponame.db.tar.gz $DBFILE - - cd $stagedir/del - # run it thru fakeroot make sure everything is owned by root.root - echo "$ARCHDIR/updatesync-many del $DBFILE NOT-USED ZOMGWOO" \ - | fakeroot - - if [ $? -ne 0 ]; then - die "==> Error returned from updatesync-many" - fi - - cp $DBFILE $ftppath - - # only for i686 (for now) - if [ "$arch" = "i686" ]; then - echo "==> Scanning for Deleted packages..." >&2 - cd $stagedir/del - ( - for i in *.pkg.tar.gz; do - pkgname=$(getpkgname $i) - echo $pkgname - done - ) | $ARCHDIR/pkgdb2-del $repoid $stagedir/del - fi - - # remove the package files - rm -f $stagedir/del/*.pkg.tar.gz -fi - -if [ "$updatelists" ]; then - echo "==> Generating Text Package List..." >&2 - cd $CHECKOUTDIR - $ARCHDIR/genpkglist $ftppath $svnrepo - if [ -f packages.txt ]; then - mv packages.txt $ftppath/packages.txt - fi -fi - -cleanup - -# vim: set ts=4 sw=4 noet ft=sh: |