Annotation of truecrypt/linux/install.sh, revision 1.1.1.3

1.1       root        1: #!/bin/sh 
                      2: # TrueCrypt install script
                      3: 
                      4: BIN_DIR=/usr/local/bin
                      5: MAN_DIR=/usr/local/man
                      6: MOD_DIR=/lib/modules/$(uname -r)/extra
1.1.1.2   root        7: BIN_PERM=755
1.1       root        8: 
                      9: umask 022
                     10: 
                     11: error ()
                     12: {
                     13:        echo "Error: $*" >&2
                     14: }
                     15: 
                     16: # Prerequisites
                     17: 
                     18: echo "Checking installation requirements..."
                     19: 
                     20: [ $(id -u) -ne 0 ] && error "Administrator (root) privileges required" && exit 1
                     21: 
                     22: if ! modprobe -V >&- 2>&- || ! rmmod -V >&- 2>&-
                     23: then
                     24:        error "modprobe or rmmod not found. TrueCrypt requires kernel module tools."
                     25:        exit 1
                     26: fi
                     27: 
                     28: if [ ! -c /dev/mapper/control -a ! -L /dev/mapper/control ]
                     29: then
                     30:        echo -n "/dev/mapper/control not found - create? [Y/n]: "
                     31:        read A
                     32:        if [ "$A" = "" -o "$A" = "y" -o "$A" = "Y" ]
                     33:        then
                     34:                mkdir /dev/mapper 2>/dev/null && chmod 755 /dev/mapper
                     35:                mknod -m 600 /dev/mapper/control c 10 63
                     36:        fi
                     37: fi
                     38: 
1.1.1.3 ! root       39: lsmod | grep -q ^dm_mod
        !            40: [ $? -ne 0 ] && modprobe dm-mod >&- 2>&- && sleep 1
1.1       root       41: 
1.1.1.3 ! root       42: if ! dmsetup targets >&-
1.1       root       43: then
                     44:        error "TrueCrypt requires device mapper tools (dmsetup) 1.00.08 or later."
                     45:        exit 1
                     46: fi
                     47: 
                     48: if [ ! -b /dev/loop0 -a ! -b /dev/loop/0 -a ! -b /dev/loop1 ]
                     49: then
                     50:        echo -n "No loopback device found - create? [Y/n]: "
                     51:        read A
                     52:        if [ "$A" = "y" -o "$A" = "Y" ]
                     53:        then
                     54:                for I in 0 1 2 3 4 5 6 7
                     55:                do
                     56:                        mknod -m 600 /dev/loop$I b 7 $I
                     57:                done
                     58:        fi
                     59: fi
                     60: 
                     61: rmmod truecrypt >&- 2>&-
                     62: if grep -q "^truecrypt " /proc/modules
                     63: then
                     64:        error "Please dismount all mounted TrueCrypt volumes first."
                     65:        exit 1
                     66: fi
                     67: 
                     68: 
                     69: # Build
                     70: 
                     71: if [ ! -f Kernel/truecrypt.ko -o ! -f Cli/truecrypt ]
                     72: then
                     73:        ./build.sh
                     74:        [ $? -ne -0 ] && error "Build failed - installation aborted" && exit 1
                     75: fi
                     76: 
                     77: 
                     78: # Test
                     79: 
                     80: echo -n "Testing truecrypt... "
                     81: ./Cli/truecrypt --test >/dev/null 2>/dev/null
1.1.1.2   root       82: [ $? -ne 0 ] && echo "FAILED" && exit 1
1.1       root       83: echo Done.
                     84: 
                     85: 
                     86: # Installation
                     87: 
                     88: echo
                     89: echo -n "Install binaries to [$BIN_DIR]: "
                     90: read A
                     91: [ "$A" ] && BIN_DIR=$A
1.1.1.3 ! root       92: [ ! -d "$BIN_DIR" ] && error "$BIN_DIR does not exist" && exit 1
1.1       root       93: 
                     94: echo -n "Install man page to [$MAN_DIR]: "
                     95: read A
                     96: [ "$A" ] && MAN_DIR=$A
1.1.1.3 ! root       97: [ ! -d "$MAN_DIR/man1" ] && error "$MAN_DIR/man1 does not exist" && exit 1
1.1       root       98: MAN_DIR=$MAN_DIR/man1
                     99: 
                    100: echo -n "Allow non-admin users to run TrueCrypt [y/N]: "
                    101: read A
1.1.1.3 ! root      102: [ "$A" = "y" -o "$A" = "Y" ] && BIN_PERM=4755
1.1       root      103: 
                    104: echo -n "Installing kernel module... "
                    105: # make "KERNEL_SRC=$KERNEL_SRC" install >/dev/null
1.1.1.3 ! root      106: mkdir "$MOD_DIR" 2>&-  # some distributions omit extra directory
        !           107: cp Kernel/truecrypt.ko "$MOD_DIR" && chmod 600 $MOD_DIR/truecrypt.ko && depmod -a
1.1       root      108: [ $? -ne 0 ] && error "Failed to install kernel module" && exit 1
                    109: echo Done.
                    110: 
                    111: echo -n "Installing truecrypt to $BIN_DIR... "
                    112: cp Cli/truecrypt "$BIN_DIR" && chown root:root "$BIN_DIR/truecrypt" && chmod $BIN_PERM "$BIN_DIR/truecrypt"
                    113: [ $? -ne 0 ] && error "Failed to install truecrypt" && exit 1
                    114: echo Done.
                    115: 
                    116: echo -n "Installing truecrypt man page to $MAN_DIR... "
                    117: cp Cli/Man/truecrypt.1 "$MAN_DIR" && chown root:root "$MAN_DIR/truecrypt.1" && chmod 644 "$MAN_DIR/truecrypt.1"
                    118: [ $? -ne 0 ] && error "Failed to install truecrypt man page" && exit 1
                    119: echo Done.
                    120: 
                    121: exit 0

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.