diff options
author | Florian Fainelli <florian@openwrt.org> | 2006-12-31 15:02:08 +0000 |
---|---|---|
committer | Florian Fainelli <florian@openwrt.org> | 2006-12-31 15:02:08 +0000 |
commit | 6173d17c876bed59599f61dcdec68d9c1b4fd3ac (patch) | |
tree | 073a85c8da56fc3dd5cf6c124ce2b8d0d7d6cba0 /scripts | |
parent | 924b7ef598953446ffdd6efbc1c65366af83c30c (diff) | |
download | master-187ad058-6173d17c876bed59599f61dcdec68d9c1b4fd3ac.tar.gz master-187ad058-6173d17c876bed59599f61dcdec68d9c1b4fd3ac.tar.bz2 master-187ad058-6173d17c876bed59599f61dcdec68d9c1b4fd3ac.zip |
Add a first implementation of a source feed checkout
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@5943 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/feeds.sh | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/scripts/feeds.sh b/scripts/feeds.sh new file mode 100755 index 0000000000..341259bf49 --- /dev/null +++ b/scripts/feeds.sh @@ -0,0 +1,59 @@ +#!/bin/sh +# Copyright (C) 2006 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# +# Usage : $1 -> source feeds +# $2 -> other options +# +# Note : we do not yet resolve package name conflicts +# +# +FEEDS_DIR=$TOPDIR/feeds +PACKAGE_DIR=$TOPDIR/package + +cd $TOPDIR +# This directory will be structured this way : feeds/feed-name +[ -d $FEEDS_DIR ] || mkdir -p $FEEDS_DIR + + +# Some functions we might call several times a run +delete_symlinks() { + find $PACKAGE_DIR -type l | xargs rm -f +} + +setup_symlinks() { + # We assume that feeds do reproduce the hierarchy : section/package + for dir in $(ls $FEEDS_DIR/) + do + ln -s $FEEDS_DIR/$dir/*/* $PACKAGE_DIR/ + done +} + +checkout_feed() { + # We ensure the feed has not already been checkout, if so, just update the source feed + if [ -d $FEEDS_DIR/$2 ]; then + svn update $FEEDS_DIR/$2 + echo "Updated to revision $(LANG=C svn info $FEEDS_DIR/$2 | awk '/^Revision:/ { print $2 }' )"; + # Otherwise, we have to checkout in the + else + svn co $1 $FEEDS_DIR/$2 + echo "Checked out revision $(LANG=C svn info $FEEDS_DIR/$2 | awk '/^Revision:/ { print $2 }' )"; + fi +} + +extract_feed_name() { + echo "$(echo $1 | awk -F/ '{ print $NF}')" +} + +# We can delete symlinks every time we start this script, since modifications have been made anyway +delete_symlinks "" +# Now let's checkout feeds +for feed in $1 +do + name=$(extract_feed_name "$feed") + checkout_feed "$feed" "$name" +done +# Finally setup symlinks +setup_symlinks "" |