diff options
Diffstat (limited to 'base/pkg-get/syn')
-rw-r--r-- | base/pkg-get/syn | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/base/pkg-get/syn b/base/pkg-get/syn index 70beace61..d29fcd6f7 100644 --- a/base/pkg-get/syn +++ b/base/pkg-get/syn @@ -1,16 +1,32 @@ #!/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 - if [ ! -d $Depot/locale ]; then mkdir -p $Depot/locale; fi - pushd $Depot/locale > /dev/null - pkg-repgen - popd - for i in test release + 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 @@ -20,14 +36,17 @@ 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 [ -d $MediaDepot/$i ]; then - echo "Dépot $i trouvé sur le media" rm -r $Depot/$i > /dev/null 2>&1 mkdir -p $Depot/$i - for j in $MediaDepot/$i/*.gz + for j in $MediaDepot/$i/*.xz do + let PKGNB=$PKGNB+1 + fj=`basename $j` - ln -svf $MediaDepot/$i/$fj $Depot/$i/$fj > /dev/null + 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 @@ -36,5 +55,4 @@ else do rsync -avuz --delete-before rsync://nutyx.meticul.eu/nutyx/attapu/i686/$i/ $Depot/$i/ done -fi - +fi |