slitaz-modular rev 101
local-mirror: Add support for backup-mirror. This will allow you to backup mirror packages, src, and repos to the mirror union branch directly if its mounted in /mnt/live/memory/mirror folder.
author | Christopher Rogers <slaxemulator@gmail.com> |
---|---|
date | Thu May 12 22:07:51 2011 +0000 (2011-05-12) |
parents | a885658a2485 |
children | 5cff4ed8b747 |
files | initramfs/usr/bin/local-mirror |
line diff
1.1 --- a/initramfs/usr/bin/local-mirror Thu May 12 18:10:08 2011 +0000 1.2 +++ b/initramfs/usr/bin/local-mirror Thu May 12 22:07:51 2011 +0000 1.3 @@ -13,20 +13,19 @@ 1.4 usage() { 1.5 echo "$0 $VERSION" 1.6 echo "$0 [on|off|update-repos|tank-only|mirror-only]" 1.7 + echo "$0 [backup-mirror|up-src-links]" 1.8 exit 1 1.9 } 1.10 1.11 +#[ -d /mnt/live/memory/mirror/packages ] && PKGDIR="/mnt/live/memory/mirror/packages" 1.12 +#[ -d /mnt/live/memory/mirror/src ] && SRCDIR="/mnt/live/memory/mirror/src" 1.13 +sync_mirror=$(find /mnt/live -name "mirror" -type d -maxdepth 3 | head -1) 1.14 + 1.15 COOKORDER="$(find /mnt/live/mnt/* -name "cookorder.list" -maxdepth 1)" 1.16 CUR_PWD="$PWD" 1.17 1.18 [ -d $SLITAZ_DIR ] || mkdir -p $SLITAZ_DIR 1.19 -if [ "$(cat /proc/cmdline | grep 'home=')" ]; then 1.20 - [ -d $SLITAZ_DIR/repos ] || cp -a $REPOS_DIR $SLITAZ_DIR/repos 1.21 - rm -rf $REPOS_DIR 1.22 -else 1.23 - [ -d $SLITAZ_DIR/repos ] || ln -sf $REPOS_DIR $SLITAZ_DIR/repos 1.24 -fi 1.25 - 1.26 +[ -d $SLITAZ_DIR/repos ] || ln -sf $REPOS_DIR $SLITAZ_DIR/repos 1.27 [ -d $SLITAZ_DIR/repos ] && REPOS_DIR="$SLITAZ_DIR/repos" 1.28 1.29 #repos folders for website 1.30 @@ -36,18 +35,7 @@ 1.31 BOOT_WWW_DIR="$REPOS_DIR/slitaz-forge/boot" 1.32 TANK_WWW_DIR="$REPOS_DIR/slitaz-forge/tank/web" 1.33 1.34 -if [ -d $REPOS_DIR/my-wok ]; then 1.35 - REPO_WOK=$REPOS_DIR/my-wok 1.36 - if [ -x /usr/bin/hg ]; then 1.37 - cd $REPO_WOK 1.38 - if [ ! "$(hg branch)" = "cooking" ]; then 1.39 - hg update cooking 1.40 - fi 1.41 - cd $CUR_PWD 1.42 - fi 1.43 -elif [ -d $REPOS_DIR/wok ]; then 1.44 - REPO_WOK=$REPOS_DIR/wok 1.45 -fi 1.46 + 1.47 1.48 if [ "$COMMAND" = "tank-only" ]; then 1.49 WWW="${WWW/mirror/}" 1.50 @@ -62,17 +50,29 @@ 1.51 fi 1.52 1.53 [ -d $REPOS_DIR ] || continue 1.54 -[ -d $MAIN_WWW_DIR ] || mkdir -p $MAIN_WWW_DIR 1.55 -[ -L /var/www/vhosts ] || ln -sf $MAIN_WWW_DIR /var/www/vhosts 1.56 1.57 INCOMING_REPOSITORY="$LOCAL_REPOSITORY/packages-incoming" 1.58 CRON_FILE="/var/spool/cron/crontabs/root" 1.59 1.60 -[ -d $(dirname $CRON_FILE) ] || mkdir -p $(dirname $CRON_FILE) 1.61 -[ -f $CRON_FILE ] || touch $CRON_FILE 1.62 - 1.63 www() { 1.64 b=$1 1.65 + [ -d $(dirname $CRON_FILE) ] || mkdir -p $(dirname $CRON_FILE) 1.66 + [ -f $CRON_FILE ] || touch $CRON_FILE 1.67 + [ -d $MAIN_WWW_DIR ] || mkdir -p $MAIN_WWW_DIR 1.68 + [ -L /var/www/vhosts ] || ln -sf $MAIN_WWW_DIR /var/www/vhosts 1.69 + 1.70 + if [ -d $REPOS_DIR/my-wok ]; then 1.71 + REPO_WOK=$REPOS_DIR/my-wok 1.72 + if [ -x /usr/bin/hg ]; then 1.73 + cd $REPO_WOK 1.74 + if [ ! "$(hg branch)" = "cooking" ]; then 1.75 + hg update cooking 1.76 + fi 1.77 + cd $CUR_PWD 1.78 + fi 1.79 + elif [ -d $REPOS_DIR/wok ]; then 1.80 + REPO_WOK=$REPOS_DIR/wok 1.81 + fi 1.82 case "$b" in 1.83 website) 1.84 [ -d $REPOS_DIR/$b ] && ln -s $REPOS_DIR/$b $MAIN_WWW_DIR 1.85 @@ -344,6 +344,7 @@ 1.86 [ -x /etc/init.d/crond ] && /etc/init.d/crond start 1.87 ;; 1.88 update-repos) 1.89 + pwd=$(pwd) 1.90 for i in $(ls $REPOS_DIR); do 1.91 if [ -d $REPOS_DIR/$i/.hg ]; then 1.92 cd $REPOS_DIR/$i 1.93 @@ -351,6 +352,7 @@ 1.94 hg pull -u 1.95 fi 1.96 done 1.97 + cd $pwd 1.98 ;; 1.99 up-src-links) 1.100 if [ -d $SRCDIR ]; then 1.101 @@ -362,6 +364,40 @@ 1.102 unset i 1.103 fi 1.104 ;; 1.105 + backup-mirror|-bm) 1.106 + case "$2" in 1.107 + pkgs-dry-push) 1.108 + rsync -avrtlz --delete --dry-run $PKGDIR ${sync_mirror} ;; 1.109 + src-dry-push) 1.110 + rsync -avrtlz --delete --dry-run $SRCDIR ${sync_mirror} ;; 1.111 + repos-dry-push) 1.112 + rsync -avrtlz --delete --dry-run $REPOS_DIR ${sync_mirror} ;; 1.113 + pkgs-push) 1.114 + rsync -avrtlz --delete $PKGDIR ${sync_mirror} ;; 1.115 + src-push) 1.116 + rsync -avrtlz --delete $SRCDIR ${sync_mirror} ;; 1.117 + repos-push) 1.118 + rsync -avrtlz --delete $REPOS_DIR ${sync_mirror} ;; 1.119 + pkgs-dry-pull) 1.120 + rsync -avrtlz --delete --dry-run ${sync_mirror}${PKGDIR} $(dirname ${PKGDIR}) ;; 1.121 + src-dry-pull) 1.122 + rsync -avrtlz --delete --dry-run ${sync_mirror}${SRCDIR} $(dirname ${SRCDIR}) ;; 1.123 + repos-dry-pull) 1.124 + rsync -avrtlz --delete --dry-run ${sync_mirror}${REPOS_DIR} $(dirname ${REPOS_DIR}) ;; 1.125 + pkgs-pull) 1.126 + rsync -avrtlz --delete ${sync_mirror}${PKGDIR} $(dirname ${PKGDIR}) ;; 1.127 + src-pull) 1.128 + rsync -avrtlz --delete ${sync_mirror}${SRCDIR} $(dirname ${SRCDIR}) ;; 1.129 + repos-pull) 1.130 + rsync -avrtlz --delete ${sync_mirror}${REPOS_DIR} $(dirname ${REPOS_DIR}) ;; 1.131 + *) 1.132 + echo "$0 backup-mirror pkgs-dry-{push|pull}" 1.133 + echo "$0 backup-mirorr pkgs-{push|pull}" 1.134 + echo "$0 backup-mirror src-dry-{push|pull}" 1.135 + echo "$0 backup-mirror src-{push|pull}" 1.136 + echo "$0 backup-mirror repos-dry-{push|pull}" 1.137 + echo "$0 backup-mirror repos-{push|pull}" ;; 1.138 + esac ;; 1.139 off) 1.140 [ -x /etc/init.d/lighttpd ] && /etc/init.d/lighttpd stop 1.141 [ -x /etc/init.d/crond ] && /etc/init.d/crond stop