parent
18bd5286e6
commit
1a94a85970
@ -1,63 +0,0 @@ |
||||
#!/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, space separated |
||||
# $2 -> other options (not used yet) |
||||
# |
||||
# Note : we do not yet resolve package name conflicts |
||||
# |
||||
|
||||
# Directories |
||||
FEEDS_DIR=$TOPDIR/feeds |
||||
PACKAGE_DIR=$TOPDIR/package |
||||
|
||||
# We work in the TOPDIR as defined in the caller Makefile |
||||
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 $1 -type l | xargs -r rm -f |
||||
} |
||||
|
||||
setup_symlinks() { |
||||
# We assume that feeds do reproduce the hierarchy : section/package |
||||
# so that we can make this structure be flat in $PACKAGE_DIR |
||||
for dir in $(ls $1/) |
||||
do |
||||
ln -s $1/$dir/* $2/ |
||||
done |
||||
} |
||||
|
||||
checkout_feed() { |
||||
# We ensure the feed has not already been checked out, if so, we just update the source feed |
||||
if [ -d $FEEDS_DIR/$2 ]; then |
||||
svn up ${3:+-r$3} $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 $FEEDS_DIR |
||||
else |
||||
svn co ${3:+-r$3} $1 $FEEDS_DIR/$2 |
||||
echo "Checked out revision $(LANG=C svn info $FEEDS_DIR/$2 | awk '/^Revision:/ { print $2 }' )"; |
||||
fi |
||||
} |
||||
|
||||
extract_feed_name() { |
||||
# We extract the last name of the URL, maybe we should rename this as domain.tld.repository.name |
||||
echo "$(echo $1 | sed -e "s/[^A-Za-z\.]\+/_/g")" |
||||
} |
||||
|
||||
# We can delete symlinks every time we start this script, since modifications have been made in the $FEEDS_DIR anyway |
||||
delete_symlinks "$PACKAGE_DIR" |
||||
# Now let's checkout feeds |
||||
for feed in $1 |
||||
do |
||||
name=$(extract_feed_name "$feed") |
||||
checkout_feed "$feed" "$name" "$2" |
||||
done |
||||
# Finally setup symlinks |
||||
setup_symlinks "$FEEDS_DIR" "$PACKAGE_DIR" |
Loading…
Reference in new issue