| 1 | #!/bin/bash |
|---|
| 2 | # Bash script to chroot into Parsix roots |
|---|
| 3 | # Coyright 2005-2008 Alan Baghumian / GNU/GPL |
|---|
| 4 | |
|---|
| 5 | usage() |
|---|
| 6 | { |
|---|
| 7 | echo "Usage: chroot <32|64>" |
|---|
| 8 | exit |
|---|
| 9 | } |
|---|
| 10 | |
|---|
| 11 | if [ -z "${1}" ]; then |
|---|
| 12 | usage |
|---|
| 13 | fi |
|---|
| 14 | |
|---|
| 15 | if [ "${1}" != "32" -a "${1}" != "64" ]; then |
|---|
| 16 | echo "Invalid arch. Usage: chroot <32|64>" |
|---|
| 17 | exit |
|---|
| 18 | fi |
|---|
| 19 | |
|---|
| 20 | # mount needed file systems |
|---|
| 21 | mount -o bind /proc source${1}/PARSIX/proc |
|---|
| 22 | mount -o bind /dev/pts source${1}/PARSIX/dev/pts |
|---|
| 23 | |
|---|
| 24 | chroot source${1}/PARSIX/ |
|---|
| 25 | |
|---|
| 26 | # clean-up |
|---|
| 27 | to_purge=`chroot source${1}/PARSIX dpkg -l | grep ^rc | awk '{print $2}'` |
|---|
| 28 | is_orphan=`chroot source${1}/PARSIX deborphan` |
|---|
| 29 | |
|---|
| 30 | if [ ! -z "${to_purge}" ]; then |
|---|
| 31 | chroot source${1}/PARSIX echo "${to_purge}" | xargs dpkg -P |
|---|
| 32 | fi |
|---|
| 33 | |
|---|
| 34 | if [ ! -z "${is_orphan}" ]; then |
|---|
| 35 | chroot source${1}/PARSIX echo "${is_orphan}" | xargs dpkg -P |
|---|
| 36 | fi |
|---|
| 37 | |
|---|
| 38 | # reset logs |
|---|
| 39 | rm source${1}/PARSIX/var/log/dpkg.log &>/dev/null |
|---|
| 40 | rm source${1}/PARSIX/var/log/scrollkeeper.log &>/dev/null |
|---|
| 41 | |
|---|
| 42 | touch source${1}/PARSIX/var/log/dpkg.log &>/dev/null |
|---|
| 43 | touch source${1}/PARSIX/var/log/scrollkeeper.log &>/dev/null |
|---|
| 44 | |
|---|
| 45 | chroot source${1}/PARSIX chmod 640 /var/log/dpkg.log |
|---|
| 46 | chroot source${1}/PARSIX chown root:adm /var/log/dpkg.log |
|---|
| 47 | |
|---|
| 48 | chroot source${1}/PARSIX chmod 644 /var/log/scrollkeeper.log |
|---|
| 49 | chroot source${1}/PARSIX chown root:root /var/log/scrollkeeper.log |
|---|
| 50 | |
|---|
| 51 | # unmount needed file systems |
|---|
| 52 | umount -f source${1}/PARSIX/proc |
|---|
| 53 | umount -f source${1}/PARSIX/dev/pts |
|---|
| 54 | |
|---|