slitaz-dev-tools annotate tazchroot/tazchroot @ rev 283

hg: link to shortlog in menu to have more logs
author Christophe Lincoln <pankso@slitaz.org>
date Wed Mar 01 22:52:43 2017 +0100 (2017-03-01)
parents 73982bbcef99
children
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
al@253 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