#!/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/.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 ;; modulesforoptions) if grep -q "^options " /etc/modprobe.d/custom.conf; then echo "-" grep "^options " /etc/modprobe.d/custom.conf | cut -d " " -f 2 fi echo "-" lsmod | grep -v "^Module" | cut -d " " -f 1 | sort ;; setoptions) . /etc/rc.config sed "/^MODULES_OPTIONS_NAME/d" -i /etc/rc.config sed "/^MODULES_OPTIONS_VALUE/d" -i /etc/rc.config MODULES_OPTIONS_NAME=${MODULES_OPTIONS_NAME%% *} if [ -n "$MODULES_OPTIONS_NAME" ]; then sed "/^options $MODULES_OPTIONS_NAME /d" -i /etc/modprobe.d/custom.conf if [ -n "$MODULES_OPTIONS_VALUE" ]; then echo "options $MODULES_OPTIONS_NAME $MODULES_OPTIONS_VALUE" >> /etc/modprobe.d/custom.conf fi if lsmod | grep -q "^$MODULES_OPTIONS_NAME "; then modprobe -r $MODULES_OPTIONS_NAME modprobe $MODULES_OPTIONS_NAME $MODULES_OPTIONS_VALUE fi fi ;; modulesforforcelist) echo "-" cat /lib/modules/$(uname -r)/modules.dep | sed "s/.*\/\(.*\).ko:.*/\1/" | sort | while read name; do if ! grep -q "^$name$" /etc/modules; then echo $name fi done ;; addforceload) . /etc/rc.config sed "/^MODULES_FORCE_LOAD_ADD/d" -i /etc/rc.config echo "$MODULES_FORCE_LOAD_ADD" >> /etc/modules ;; modulesonforcelist) echo "-" grep -v "^#" /etc/modules | grep -v "^\s*$" || : ;; delforceload) . /etc/rc.config sed "/^MODULES_FORCE_LOAD_DEL/d" -i /etc/rc.config sed "/^$MODULES_FORCE_LOAD_DEL$/d" -i /etc/modules ;; modulesforblacklist) echo "-" lsmod | grep "^\S\+\s\+\S\+\s\+\S\+\s\+$" | cut -d " " -f 1 | sort | while read name; do if ! grep -q "blacklist $name$" /etc/modprobe.d/custom.conf; then echo $name fi done ;; addblacklist) . /etc/rc.config sed "/^MODULES_BLACKLIST_ADD/d" -i /etc/rc.config echo "blacklist $MODULES_BLACKLIST_ADD" >> /etc/modprobe.d/custom.conf modprobe -r $MODULES_BLACKLIST_ADD ;; modulesonblacklist) echo "-" grep "^blacklist " /etc/modprobe.d/custom.conf | cut -d " " -f 2 ;; delblacklist) . /etc/rc.config sed "/^MODULES_BLACKLIST_DEL/d" -i /etc/rc.config sed "/blacklist $MODULES_BLACKLIST_DEL$/d" -i /etc/modprobe.d/custom.conf ;; esac