diff options
Diffstat (limited to 'base/pkg-repgen/syn')
-rw-r--r-- | base/pkg-repgen/syn | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/base/pkg-repgen/syn b/base/pkg-repgen/syn new file mode 100644 index 000000000..d29fcd6f7 --- /dev/null +++ b/base/pkg-repgen/syn @@ -0,0 +1,58 @@ +#!/bin/bash +MediaDepot=/media/cdrom/depot +Depot=/srv/NuTyX +find_cd() { +EXPECT_LABEL="nutyxcd" +let PKGNB=0 +for SYS in /sys/block/sd* /sys/block/sr* ; do + if [ ! -d "$SYS" ]; then continue; fi + DEV=/dev/${SYS##*/} + LABEL=`dd if=$DEV bs=1 skip=32808 count=32 2>/dev/null` + if [ $LABEL == $EXPECT_LABEL ] 2>/dev/null ; then + mkdir -p /media/cdrom 2>/dev/null + mount $DEV /media/cdrom + if [ ! -d /media/cdrom/depot ]; then + umount -n /media/cdrom + fi + break + fi +done +} +if [ ! "$EUID" -eq 0 ]; then + echo "Seul le compte root peut synchroniser les ports NuTyX" + exit 1 +fi +if ! mountpoint /media/cdrom > /dev/null; then + find_cd +fi +if [ ! -L /depot ]; then + for i in `cat /etc/pkg-get.conf |grep -v ^#|grep http|cut -d "|" -f 1|cut -d" " -f2|cut -d"/" -f4` + do + if [ -a $Depot/$i ]; then + rm -r $Depot/$i + fi + done + pkg-get sync + for i in `cat /etc/pkg-get.conf |grep -v ^#|grep http|cut -d "|" -f 1|cut -d" " -f2|cut -d"/" -f4` + do + if [ -d $MediaDepot/$i ]; then + rm -r $Depot/$i > /dev/null 2>&1 + mkdir -p $Depot/$i + for j in $MediaDepot/$i/*.xz + do + let PKGNB=$PKGNB+1 + + fj=`basename $j` + ln -sf $MediaDepot/$i/$fj $Depot/$i/$fj + echo -n -e "$PKGNB Paquets trouvés sur le média\r" + done + echo "$PKGNB Paquets trouvés sur le média" + cp $MediaDepot/$i/PKG* $Depot/$i/ + fi + done +else + for i in `cat /etc/pkg-get.conf |grep -v ^#|grep http|cut -d "|" -f 1|cut -d" " -f2|cut -d"/" -f4` + do + rsync -avuz --delete-before rsync://nutyx.meticul.eu/nutyx/attapu/i686/$i/ $Depot/$i/ + done +fi |