(Finally figured out gmail's email alias can be set as default, so my addy just changed.)
Hi, I have my first program to publish, and would like a little feedback. zchroot is a bash script to work with encrypted chroot-in-a-file chroots. --help output is at end of this email. Right now zchroot is robust for: creating new, showing status of, mounting and unmounting, encrypted, loopback mounted, chroot in a file files. Soon I shall double check the robustness of running a command outside of, or chrooted into, a chroot. First version I wrote was may be 3 years ago, and at that time I did not know of schroot. First version was clumsy, spread over two files, etc. I started reading schroot docs, man page and config files/ dirs, but after an hour or two did not to my satisfaction wrap my head around doing what I really wanted, so bit the bullet and reworked zchroot into something more palatable than it was. Last few days (may be I should have read more on schroot :/) I updated it to this version, which if it's useful to others, I would like to release. It may be that schroot can do it all, perhaps with just a little custom up/down scripts. So if someone is familiar with schroot, I'd like some feedback on this if you have time. Quick questions: *) Should I post zchroot here, plain or zipped? It is 551 lines, zenlib.sh is 157, and zchroot.conf is 66 lines. TIA Zenaan ---- Create and do things related to loopback mounted file based chroot guests, on this host. Usage: zchroot --new <chroot> : Create chroot; NOTE: chroot ~= suite-target. zchroot <action> <CMD> [<chroot>...] : Run commands against chroots. zchroot <chroot> : Open shell in chroot. zchroot --help : Display more help. Mandatory arguments to long options are mandatory for short options too. <actions> -n, --new <chroot> Create new chroot guest in a loopback mounted file. -s, --status <chroot>... Show status of chroots. -h, --host-init Do some chroot-related host initialization, eg. xhost/ X local connections. -m, --mount <chroot>... -u, --umount <chroot>... Mount and umount chroot(s). -i, --in <CMD> <chroot>... For each chroot, run CMD after chrooting into chroot: run CMD as chroot root user, from chroot(s)' / dir. -o, --out <CMD> <chroot>... For each chroot, run CMD: run CMD as current user, from chroot(s)' / dir. -l, --list-mounts List mounted chroots ?? -bm, --bmount <chroot>... -bu, --bumount <chroot>... (U)mount bind mounts for chroots (eg /tmp, /dev). -t, --tmp Do some random tmp stuff. --help Show this help. <chroot> Filename or mountpoint dir, eg lucid-dbtest.img or lucid-dbtest When creating new chroot, name must be of form 'suite-target', with a hyphen separating the two components: 'suite': distribution suite, eg lucid, testing, lenny. 'target': a name distinguishing this chroot from others, eg dbtest <CMD> Command to run, include quotes eg "apt-get update" Env config parameters will be loaded from ~/etc/zchroot.conf -- SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/ Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html