#!/bin/sh grep -q vdr /proc/$(cut -d " " -f 4 /proc/$PPID/stat)/cmdline && parent=vdr message() { if [ "$parent" = "vdr" ]; then svdrpsend.sh -d "MESG $1" else echo $1 fi } case $1 in setversion) apm clearcache ;; setclass) apm clearcache ;; setpassword) . /etc/rc.config if [ -n "$SYSTEM_PASSWORD" ]; then sed "/^SYSTEM_PASSWORD/d" -i /etc/rc.config echo -e "$SYSTEM_PASSWORD\n$SYSTEM_PASSWORD" | passwd -a md5 root fi ;; setbootmenutime) . /etc/rc.config sed "s/TIMEOUT .*/TIMEOUT $(($BOOTMENU_TIME*10))/" -i /boot/isolinux/style.cfg ;; datadisks) $0 mounteddisks $0 unmounteddisks ;; setdatadisk) . /etc/init.d/rc.functions if [ -n "$HDD_DATA_DISK" ]; then sed "/^HDD_DATA_DISK/d" -i /etc/rc.config mount | grep -q " /mnt/data " && (umount /mnt/data 2>/dev/null || message "$(tr 'can not unmount old data device')") if grep " /mnt/data " /etc/fstab | grep -q "^/dev/\|^UUID="; then sed "/ \/mnt\/data /d" -i /etc/fstab else sed "s/\(.*\/\)\(\S\+\)\(\s\+\/mnt\/\)data /#\1\2\3\2 /" -i /etc/fstab fi if grep -q "/mnt/${HDD_DATA_DISK%%:*}" /etc/fstab; then sed "s/#\(.* \/mnt\/${HDD_DATA_DISK%%:*} \)/\1/" -i /etc/fstab sed "s/ \/mnt\/${HDD_DATA_DISK%%:*} / \/mnt\/data /" -i /etc/fstab mount /mnt/data || message "$(tr 'can not mount device $HDD_DATA_DISK')" else mountdev -d /mnt/data ${HDD_DATA_DISK%%:*} 2>/dev/null || message "$(tr 'can not mount device $HDD_DATA_DISK')" fi # check needed dirs on data disk find /data/ -type l | while read link; do dir=$(readlink $link) if [ ! -d "$dir" ]; then dir=${dir#/mnt/data/} message "$(tr 'dir $dir missing on data disk')" fi #mkdir -p $(readlink $link); done touch /data/tv/tv0/.update 2>/dev/null fi ;; unmounteddisks) echo "-" fdisk -l 2>/dev/null | grep "^/dev/" | grep -v "Extended" | cut -b 6-10,39-49 | sort -u | while read dev size; do if ! grep -q "^/dev/$dev " /etc/fstab && ! mount | grep -q "^/dev/$dev"; then size=$(($size/1024*1000/1024)) size=$(($size/1000)).$(($size%1000/100))G echo "$dev: $size" fi done grep "/mnt/" /etc/fstab | grep -v "^#" | grep -v "^/dev/" | while read dev path type options; do if [ -z "${dev##UUID=*}" ]; then dev=$(blkid | grep "${dev#UUID=}" | cut -d : -f1) fi if ! mount | grep -q "^$dev"; then size="$(df -h | grep "^$dev .* $path$" | sed 's/^\S*\s*\(\S*\).*/\1/')" echo "${path#/mnt/}: $size (${dev#/dev/})" fi done ;; mounteddisks) echo "-" grep "/mnt/" /etc/fstab | grep -v "^#" | while read dev path type options; do if [ -z "${dev##UUID=*}" ]; then dev=$(blkid | grep "${dev#UUID=}" | cut -d : -f1) fi size="$(df -h | grep "^$dev .* $path$" | sed 's/^\S*\s*\(\S*\).*/\1/')" if [ "${path#/mnt/}" != "${dev#/dev/}" ]; then dev="(${dev#/dev/})" else dev="" fi echo "${path#/mnt/}: $size $dev" done ;; mount) . /etc/init.d/rc.functions if [ -n "$HDD_MOUNT" ]; then sed "/^HDD_MOUNT/d" -i /etc/rc.config if grep -q " /mnt/${HDD_MOUNT%%:*} " /etc/fstab; then sed "s/#\(.* \/mnt\/${HDD_MOUNT%%:*} \)/\1/" -i /etc/fstab mount /mnt/${HDD_MOUNT%%:*} || message "$(tr 'can not mount device $HDD_MOUNT')" else mountdev ${HDD_MOUNT%%:*} 2>/dev/null || message "$(tr 'can not mount device $HDD_MOUNT')" fi fi ;; unmount) . /etc/init.d/rc.functions if [ -n "$HDD_UNMOUNT" ]; then sed "/^HDD_UNMOUNT/d" -i /etc/rc.config umount /mnt/${HDD_UNMOUNT%%:*} 2>/dev/null || message "$(tr 'can not unmount device $HDD_UNMOUNT')" if grep " /mnt/${HDD_UNMOUNT%%:*} " /etc/fstab | grep -q "^/dev/"; then sed "/ \/mnt\/${HDD_UNMOUNT%%:*} /d" -i /etc/fstab else sed "s/\(.*\/\)\(\S\+\)\(\s\+\/mnt\/\)${HDD_UNMOUNT%%:*} /#\1\2\3\2 /" -i /etc/fstab fi fi ;; esac