wok-next annotate slitaz-dev-tools/stuff/tazdev @ rev 3441
slitaz-dev-tools: add command update-www (up slitaz website repo)
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Sun Jun 14 02:45:16 2009 +0200 (2009-06-14) |
parents | 7b0f14e1c0ac |
children | e43fb2292deb |
rev | line source |
---|---|
pankso@3440 | 1 #!/bin/sh |
pankso@3440 | 2 # Tazdev - SliTaz developers and build host tool. |
pankso@3440 | 3 # System wide config file: /etc/slitaz/tazdev.conf |
pankso@3440 | 4 # |
pankso@3440 | 5 # (c) 2009 SliTaz GNU/Linux - GNU gpl v3 |
pankso@3440 | 6 # |
pankso@3440 | 7 # Authors : Christophe Lincoln (Pankso) <pankso@slitaz.org> |
pankso@3440 | 8 # |
pankso@3440 | 9 |
pankso@3440 | 10 if [ -f /etc/slitaz/tazdev.conf ]; then |
pankso@3440 | 11 . /etc/slitaz/tazdev.conf |
pankso@3440 | 12 elif [ -f $PWD/tazdev.conf ]; then |
pankso@3440 | 13 . $PWD/tazdev.conf |
pankso@3440 | 14 else |
pankso@3440 | 15 echo -e "\nNo config file found in /etc/slitaz or the current dir...\n" |
pankso@3440 | 16 exit 0 |
pankso@3440 | 17 fi |
pankso@3440 | 18 |
pankso@3440 | 19 usage() |
pankso@3440 | 20 { |
pankso@3440 | 21 echo -e "\nSliTaz developers and build host tool\n |
pankso@3440 | 22 \033[1mUsage: \033[0m `basename $0` [command] [user] [stable|cooking] |
pankso@3440 | 23 \033[1mCommands: \033[0m\n |
pankso@3441 | 24 usage Print this short usage and command list. |
pankso@3441 | 25 cmplog Log 'tazwok cmp' result. |
pankso@3441 | 26 update-wok Update Hg wok and copy it to the chroot wok. |
pankso@3441 | 27 update-wwww Update SliTaz Website repo. |
pankso@3441 | 28 chroot Mount virtual fs if needed and chroot into the build env. |
pankso@3441 | 29 push Upload new packages to the mirror. |
pankso@3441 | 30 dry-push Show what will be uploaded to the mirror. Do nothing. |
pankso@3441 | 31 pull Download new packages from the mirror. |
pankso@3441 | 32 dry-pull Show what will be downloaded from the mirror. Do nothing.\n" |
pankso@3440 | 33 } |
pankso@3440 | 34 |
pankso@3440 | 35 # Exit if user is not root. |
pankso@3440 | 36 check_root() |
pankso@3440 | 37 { |
pankso@3440 | 38 if test $(id -u) != 0 ; then |
pankso@3440 | 39 echo -e "\nThis program requires being run as root.\n" |
pankso@3440 | 40 exit 0 |
pankso@3440 | 41 fi |
pankso@3440 | 42 } |
pankso@3440 | 43 |
pankso@3440 | 44 check_mirror() |
pankso@3440 | 45 { |
pankso@3440 | 46 # ping -c 1 $MIRROR |
pankso@3440 | 47 if [ -n "$2" ]; then |
pankso@3440 | 48 USER=$2 |
pankso@3440 | 49 else |
pankso@3440 | 50 echo -e "\nPlease specify a user.\n" && exit 0 |
pankso@3440 | 51 fi |
pankso@3440 | 52 if [ "$3" = "stable" ]; then |
pankso@3440 | 53 REMOTE_DIR=$MIRROR_DIR/stable/ |
pankso@3440 | 54 LOCAL_DIR=$STABLE/packages/ |
pankso@3440 | 55 else |
pankso@3440 | 56 REMOTE_DIR=$MIRROR_DIR/cooking/ |
pankso@3440 | 57 LOCAL_DIR=$COOKING/packages/ |
pankso@3440 | 58 fi |
pankso@3440 | 59 } |
pankso@3440 | 60 |
pankso@3440 | 61 case "$1" in |
pankso@3440 | 62 cmplog) |
pankso@3440 | 63 # Log 'tazwok cmp' for the web interface (can be used via a cron job). |
pankso@3440 | 64 check_root |
pankso@3440 | 65 tazwok cmp | grep ^[A-Z] | tee $CMP_LOG |
pankso@3440 | 66 echo "Date: `date`" >> $CMP_LOG ;; |
pankso@3440 | 67 update-wok) |
pankso@3440 | 68 # Update the Hg wok and copy it to the chroot env. Hg wok id |
pankso@3440 | 69 # copied to the chroot wok to avoid messing with build result |
pankso@3440 | 70 # file and so we can aslo modify receipt directly with affecting |
pankso@3440 | 71 # the main Hg. |
pankso@3440 | 72 check_root |
pankso@3440 | 73 if [ "$2" = "stable" ]; then |
pankso@3440 | 74 HG_WOK=$STABLE/wok |
pankso@3440 | 75 CHROOT=$STABLE/chroot |
pankso@3440 | 76 else |
pankso@3440 | 77 HG_WOK=$COOKING/wok |
pankso@3440 | 78 CHROOT_WOK=$COOKING/chroot/home/slitaz |
pankso@3440 | 79 fi |
pankso@3440 | 80 cd $HG_WOK |
pankso@3440 | 81 hg pull && hg update |
pankso@3440 | 82 echo -n "Copying Hg wok to the chroot... " |
pankso@3440 | 83 cp -a $HG_WOK $CHROOT_WOK |
pankso@3440 | 84 echo "Done" ;; |
pankso@3441 | 85 update-www) |
pankso@3441 | 86 # Update website from repo. |
pankso@3441 | 87 echo "" |
pankso@3441 | 88 cd $WEBSITE && hg pull && hg update |
pankso@3441 | 89 echo "" ;; |
pankso@3440 | 90 chroot) |
pankso@3440 | 91 # Chroot into a build env. Default to cookind configured in |
pankso@3440 | 92 # tazdev.conf |
pankso@3440 | 93 check_root |
pankso@3440 | 94 if [ "$1" = "stable" ]; then |
pankso@3440 | 95 ROOTFS=$STABLE/chroot |
pankso@3440 | 96 else |
pankso@3440 | 97 ROOTFS=$COOKING/chroot |
pankso@3440 | 98 [ -n "$1" ] && ROOTFS=$1 |
pankso@3440 | 99 fi |
pankso@3440 | 100 # Mount virtual Kernel file systems and chroot but check that |
pankso@3440 | 101 # nobody else has done mounts |
pankso@3440 | 102 if [ ! -d $ROOTFS/proc/1 ]; then |
pankso@3440 | 103 mount -t proc proc $ROOTFS/proc |
pankso@3440 | 104 mount -t sysfs sysfs $ROOTFS/sys |
pankso@3440 | 105 mount -t devpts devpts $ROOTFS/dev/pts |
pankso@3440 | 106 mount -t tmpfs shm $ROOTFS/dev/shm |
pankso@3440 | 107 fi |
pankso@3440 | 108 echo "Chrooting in $ROOTFS... " |
pankso@3440 | 109 chroot $ROOTFS /bin/sh --login |
pankso@3440 | 110 # Unmount virtual Kernel file systems on exit. and ensure we are the |
pankso@3440 | 111 # last user before unmounting ! |
pankso@3440 | 112 if [ "$(ps | grep $(basename $0) | grep -v grep | wc -l)" == "1" ]; then |
pankso@3440 | 113 umount $ROOTFS/dev/shm |
pankso@3440 | 114 umount $ROOTFS/dev/pts |
pankso@3440 | 115 umount $ROOTFS/sys |
pankso@3440 | 116 umount $ROOTFS/proc |
pankso@3440 | 117 fi |
pankso@3440 | 118 echo "Exiting of $ROOTFS chroot environment... " ;; |
pankso@3440 | 119 push) |
pankso@3440 | 120 check_mirror |
pankso@3440 | 121 rsync -r -t -l -v -z --delete \ |
pankso@3440 | 122 $LOCAL_DIR -e ssh $USER@$HOST:$REMOTE_DIR ;; |
pankso@3440 | 123 dry-push) |
pankso@3440 | 124 check_mirror |
pankso@3440 | 125 rsync -r -t -l -v -z --delete --dry-run \ |
pankso@3440 | 126 $LOCAL_DIR -e ssh $USER@$HOST:$REMOTE_DIR ;; |
pankso@3440 | 127 pull) |
pankso@3440 | 128 check_mirror |
pankso@3440 | 129 rsync -r -t -l -v -z --delete \ |
pankso@3440 | 130 -e ssh $USER@$HOST:$REMOTE_DIR $LOCAL_DIR ;; |
pankso@3440 | 131 dry-pull) |
pankso@3440 | 132 check_mirror |
pankso@3440 | 133 rsync -r -t -l -v -z --delete --dry-run \ |
pankso@3440 | 134 -e ssh $USER@$HOST:$REMOTE_DIR $LOCAL_DIR ;; |
pankso@3440 | 135 usage|*) |
pankso@3440 | 136 usage ;; |
pankso@3440 | 137 esac |
pankso@3440 | 138 |
pankso@3440 | 139 exit 0 |