slitaz-dev-tools annotate tazchroot/tazchroot @ rev 210
tazdev: add cmd up-repos|-upr to update all repos at once
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Thu Jan 02 14:38:56 2014 +0100 (2014-01-02) |
parents | 5de4cfa5296c |
children | 869d3bc4d3a6 |
rev | line source |
---|---|
slaxemulator@11 | 1 #!/bin/sh |
paul@31 | 2 # Tazchroot - SliTaz chroot manager tool. |
slaxemulator@11 | 3 # |
slaxemulator@11 | 4 # System wide config file for tazhack : /etc/slitaz/tazchroot.conf |
slaxemulator@11 | 5 # Expected system wide config (for Slitaz) : /etc/slitaz/slitaz.conf |
slaxemulator@11 | 6 # |
slaxemulator@11 | 7 # (ยข) Since end of time Anonymous - GNU gpl v3 |
slaxemulator@11 | 8 # Version : Alpha |
slaxemulator@11 | 9 # Authors : Anonymous |
slaxemulator@11 | 10 # |
slaxemulator@11 | 11 |
slaxemulator@11 | 12 # Get main SliTaz configuration file. |
pascal@196 | 13 . /lib/libtaz.sh |
slaxemulator@11 | 14 source_lib commons |
slaxemulator@11 | 15 |
slaxemulator@11 | 16 # Create chroot if needed |
slaxemulator@11 | 17 check_chroot() |
slaxemulator@11 | 18 { |
slaxemulator@11 | 19 if [ ! -d $chroot_dir ]; then |
slaxemulator@11 | 20 check_root |
slaxemulator@11 | 21 echo -n "Creating chroot in $chroot_dir..." |
slaxemulator@11 | 22 create_chroot |
slaxemulator@11 | 23 status |
slaxemulator@11 | 24 fi |
slaxemulator@11 | 25 if [ -d "$chroot_dir/proc/1" ]; then |
slaxemulator@11 | 26 echo "The chroot $chroot_dir is already mounted." >&2 |
slaxemulator@11 | 27 exit 1 |
slaxemulator@11 | 28 fi |
slaxemulator@11 | 29 } |
slaxemulator@11 | 30 |
slaxemulator@11 | 31 update_scripts() |
slaxemulator@11 | 32 { |
slaxemulator@11 | 33 echo -n "Updating scripts" |
slaxemulator@11 | 34 for script in $(cd "$script_dir" && echo *); do |
slaxemulator@11 | 35 if [ ! -f "$chroot_dir/usr/bin/$script" ] || \ |
slaxemulator@11 | 36 [ "$script_dir/$script" -nt "$chroot_dir/usr/bin/$script" ]; then |
slaxemulator@11 | 37 cp -a "$script_dir/$script" "$chroot_dir/usr/bin/$script" |
slaxemulator@11 | 38 chmod +x "$chroot_dir/usr/bin/$script" |
slaxemulator@11 | 39 fi |
slaxemulator@11 | 40 done |
slaxemulator@11 | 41 status |
slaxemulator@11 | 42 } |
slaxemulator@11 | 43 |
slaxemulator@11 | 44 # Run the script. |
slaxemulator@11 | 45 check_root |
slaxemulator@11 | 46 get_config |
slaxemulator@11 | 47 command="$@" |
slaxemulator@11 | 48 [ -z "$command" ] && command='/bin/sh --login' |
slaxemulator@11 | 49 check_chroot |
slaxemulator@11 | 50 echo -n "Updating scripts..." |
slaxemulator@11 | 51 update_scripts |
slaxemulator@11 | 52 status |
slaxemulator@11 | 53 echo -n "Mounting chroot directories..." |
slaxemulator@11 | 54 mount_chroot |
slaxemulator@11 | 55 status |
slaxemulator@11 | 56 echo "Command : $command" |
paul@31 | 57 echo "Entering chroot..." |
slaxemulator@11 | 58 chroot $chroot_dir $command |
slaxemulator@11 | 59 echo -n "Leaving chroot..." |
slaxemulator@11 | 60 umount_chroot |
slaxemulator@11 | 61 status |