1
Files
qnap-rc-scripts/ImRd.sh
2016-09-04 22:20:40 +03:00

579 lines
26 KiB
Bash
Executable File

#!/bin/sh
MNT_POINT="/mnt/ext"
ROOT_PART="/mnt/HDA_ROOT"
UPDATEPKG_DIR="${ROOT_PART}/update_pkg"
PHP_INI="/etc/config/php.ini"
APP_RUNTIME_CONF="/var/.application.conf"
QPKG_CONF="/etc/config/qpkg.conf"
DEF_QPKG_CONF="/etc/default_config/qpkg.conf"
MultimediaShare=`/sbin/getcfg SHARE_DEF defMultimedia -d Qmultimedia -f /etc/config/def_share.info`
MSV2_SUPPORT=`/sbin/getcfg "QPHOTO" "MSV2_SUPPORT" -d FALSE -f /etc/default_config/uLinux.conf`
ThumbnailGenerator="/mnt/ext/opt/MSV2/api/background_conversion.php"
RUNTIME_ALARM_INFO="/tmp/.alarm_info.conf"
BACKUP_ALARM_INFO="/share/${MultimediaShare}/.@__thumb/.alarm_info.conf"
UPNP_ROOT="/mnt/QUPNP"
BOOT_CONF=`/bin/cat /etc/default_config/BOOT.conf 2>/dev/null`
QPHOTO_Hide=`/sbin/getcfg DISABLE qmultimedia -d 0 -f $APP_RUNTIME_CONF`
MS_Hide=`/sbin/getcfg DISABLE musics -d 0 -f $APP_RUNTIME_CONF`
PS_Hide=`/sbin/getcfg DISABLE photos -d 0 -f $APP_RUNTIME_CONF`
MMSHARE_PATH=`/sbin/getcfg ${MultimediaShare} path -d /ERROR -f /etc/config/smb.conf`
DEMO_SITE_SUPPORT=`/sbin/getcfg DEMO_SITE_SUPPORT Enable -u -d FALSE -f $APP_RUNTIME_CONF`
MEDIALIB_DBCMD="/usr/local/medialibrary/bin/mymediadbcmd"
MEDIALIB_CONF="/etc/config/medialibrary.conf"
PHOTO_SCAND=photo_scand
. /etc/init.d/functions
make_qpkg_base(){
FindDefVol
_ret=$?
if [ $_ret != 0 ]; then
echo "Default volume not found."
[ "x$1" = "xstop" ] || exit 1
fi
QPKG_ROOT="${DEF_VOLMP}/.qpkg"
[ -d "${QPKG_ROOT}" ] || /bin/mkdir -p "${QPKG_ROOT}"
/bin/chmod 777 "${QPKG_ROOT}"
}
function check_audio_dev()
{
for (( i=0; i<5; i=i+1 ))
do
if [ -f /proc/asound/card${i}/pcm0p/sub0/info ]; then
/bin/grep PLAYBACK /proc/asound/card${i}/pcm0p/sub0/info 1>>/dev/null 2>>/dev/null
if [ $? -eq 0 ]; then
/bin/ln -sf audio${i} /dev/audio
/bin/ln -sf mixer${i} /dev/mixer
/bin/ln -sf dsp${i} /dev/dsp
break;
fi
fi
done
}
function set_def_qpkg_info()
{
[ "x$1" != x ] || return 1
MY_QPKG_Name=`/sbin/getcfg "$1" Name -u -d X -f $QPKG_CONF`
if [ xX != x"$MY_QPKG_Name" ]; then
if [ x`/sbin/getcfg "$1" Enable -u -d TRUE -f $QPKG_CONF` = xFALSE ]; then
MY_QPKG_Enable="FALSE"
else
MY_QPKG_Enable="TRUE"
fi
else
MY_QPKG_Enable="`/sbin/getcfg "$1" Enable -u -d FALSE -f $DEF_QPKG_CONF`"
fi
if [ -f $DEF_QPKG_CONF ] && [ xX != x`/sbin/getcfg "$1" Name -u -d X -f $DEF_QPKG_CONF` ]; then
[ -f $QPKG_CONF ] || /bin/touch $QPKG_CONF
/sbin/setcfg -f $QPKG_CONF "$1" Name "`/sbin/getcfg -f $DEF_QPKG_CONF "$1" Name`"
/sbin/setcfg -f $QPKG_CONF "$1" Version "`/sbin/getcfg -f $DEF_QPKG_CONF "$1" Version`"
if [ "$1" = "MusicStation" ] && [ "x$MS_Hide" = "x1" ]; then
/sbin/setcfg -f $QPKG_CONF "$1" Enable FALSE
elif [ "$1" = "PhotoStation" ] && [ "x$PS_Hide" = "x1" ]; then
/sbin/setcfg -f $QPKG_CONF "$1" Enable FALSE
else
/sbin/setcfg -f $QPKG_CONF "$1" Enable "$MY_QPKG_Enable"
fi
/sbin/setcfg -f $QPKG_CONF "$1" QPKG_File "`/sbin/getcfg -f $DEF_QPKG_CONF "$1" QPKG_File`"
/sbin/setcfg -f $QPKG_CONF "$1" Date "`/sbin/getcfg -f $DEF_QPKG_CONF "$1" Date`"
/sbin/setcfg -f $QPKG_CONF "$1" Shell "`/sbin/getcfg -f $DEF_QPKG_CONF "$1" Shell`"
/sbin/setcfg -f $QPKG_CONF "$1" Install_Path "`/sbin/getcfg -f $DEF_QPKG_CONF "$1" Install_Path`"
/sbin/setcfg -f $QPKG_CONF "$1" WebUI "`/sbin/getcfg -f $DEF_QPKG_CONF "$1" WebUI`"
/sbin/setcfg -f $QPKG_CONF "$1" Author "`/sbin/getcfg -f $DEF_QPKG_CONF "$1" Author`"
/sbin/setcfg -f $QPKG_CONF "$1" Sys_App "`/sbin/getcfg -f $DEF_QPKG_CONF "$1" Sys_App -d 0`"
fi
/bin/touch "/tmp/.${1}.updated"
return 0
}
function mmscan_schedule()
{
BG_HOUR=`/sbin/getcfg "QPHOTO" "BG_HOUR" -d 3`
BG_MINUTE=`/sbin/getcfg "QPHOTO" "BG_MINUTE" -u -d 0`
/bin/grep ImR_all /etc/config/crontab 1>>/dev/null 2>>/dev/null
ret=$?
if [ $ret -eq 0 ]; then
/bin/sed -i '/ImR_all/d' /etc/config/crontab
fi
/bin/grep "ImRd" /etc/config/crontab 1>>/dev/null 2>>/dev/null
if [ $? -ne 0 ]; then
if [ $BG_HOUR -ge 0 ]; then
/bin/echo "$BG_MINUTE $BG_HOUR * * * /etc/init.d/ImRd.sh bgThGen" >> /etc/config/crontab
fi
else
if [ $BG_HOUR -ge 0 ]; then
/bin/sed -i 's/^.*.ImRd.*$/'"$BG_MINUTE $BG_HOUR * * * \/etc\/init.d\/ImRd.sh bgThGen"'/g' /etc/config/crontab
else
/bin/sed -i '/ImRd.sh/d' /etc/config/crontab
fi
fi
/bin/pidof crond 1>>/dev/null 2>>/dev/null
[ $? -ne 0 ] || /usr/bin/crontab /etc/config/crontab
}
function enable_medialib()
{
if [ "x$1" = "xstop" ]; then
/etc/init.d/StartMediaService.sh stop 1>/dev/null 2>/dev/null
return 0
fi
/bin/pidof mymediadbserver >/dev/null 2>&1
if [ $? != 0 ] && [ -x /etc/init.d/StartMediaService.sh ]; then
if [ ! -f $PACKAGE_PATH/bin/mymediadbserver ] && [ -f /mnt/HDA_ROOT/update_pkg/MusicStation/medialibrary.tgz ]; then
/bin/rm -rf ${MNT_POINT}/opt/medialibrary 2>/dev/null
/bin/tar zxf /mnt/HDA_ROOT/update_pkg/MusicStation/medialibrary.tgz -C ${MNT_POINT}/opt/ 2>/dev/null
/bin/rm -rf /usr/local/medialibrary 2>/dev/null
/bin/ln -sf ${MNT_POINT}/opt/medialibrary /usr/local/medialibrary
fi
/etc/init.d/StartMediaService.sh start 1>/dev/null 2>/dev/null
fi
ln -sf ../init.d/StartMediaService.sh /etc/rcK.d/K03MediaService
}
function musicstation()
{
MS_QPKG_Ver=`/sbin/getcfg MusicStation Version -d 2.0 -f $QPKG_CONF`
UseSysAccount=`/sbin/getcfg MUSICSTATION UseSysAccount -u -d x -f /etc/config/uLinux.conf`
if [ "$MS_QPKG_Ver" \< "2.1" ] && [ ! -f ${UPDATEPKG_DIR}/musicstation.tgz ]; then
/sbin/rmcfg MusicStation -f $QPKG_CONF 2>/dev/null
/sbin/setcfg MUSICSTATION Enable FALSE
[ $1 != "start" ] || return 1
fi
MS_Enable=`/sbin/getcfg MUSICSTATION Enable -u -d TRUE`
if [ "x$MS_Hide" = "x1" ] && [ x"$MS_Enable" = x"TRUE" ]; then
/sbin/setcfg MUSICSTATION Enable FALSE
MS_Enable="FALSE"
fi
MS_QPKG=`/sbin/getcfg MusicStation QPKG -u -d FALSE -f $APP_RUNTIME_CONF`
MS_QPKG_Name=`/sbin/getcfg MusicStation Name -u -d X -f $QPKG_CONF`
if [ ! -f ${UPDATEPKG_DIR}/.MusicStation_removed ] && [ x"$MS_QPKG" = xTRUE ] && [ x"$MS_QPKG_Name" = xX ]; then
set_def_qpkg_info MusicStation
elif [ ! -f ${UPDATEPKG_DIR}/.MusicStation_removed ] && [ ! -f "/tmp/.MusicStation.updated" ] && [ ! -d ${UPDATEPKG_DIR}/MusicStation ] && [ x"$MS_QPKG" = xTRUE ]; then
set_def_qpkg_info MusicStation
fi
if [ x"$MS_QPKG" = xTRUE ] && [ x"$MS_QPKG_Name" != xX ]; then
#use QPKG
MS_QPKG_Enable=`/sbin/getcfg MusicStation Enable -u -d FALSE -f $QPKG_CONF`
if [ "x$MS_Hide" = "x1" ] && [ x"$MS_QPKG_Enable" = x"TRUE" ]; then
[ -f ${UPDATEPKG_DIR}/.MusicStation_removed ] || /sbin/setcfg MusicStation Enable FALSE -f $QPKG_CONF
MS_QPKG_Enable="FALSE"
fi
if [ ! -z "$MS_QPKG_Enable" ] && [ x"$MS_Enable" != x"$MS_QPKG_Enable" ]; then
MS_Enable=$MS_QPKG_Enable
/sbin/setcfg MUSICSTATION Enable "$MS_QPKG_Enable"
fi
fi
if [ $1 = "start" ]; then
if [ x"$MS_QPKG" = xTRUE ] && [ -f ${UPDATEPKG_DIR}/.MusicStation_removed ]; then
[ ! -f ${UPDATEPKG_DIR}/musicstation.tgz ] || /bin/rm -f ${UPDATEPKG_DIR}/musicstation.tgz
return 1
fi
if [ -f ${UPDATEPKG_DIR}/musicstation.tgz ]; then
/bin/tar zxf ${UPDATEPKG_DIR}/musicstation.tgz -C "${QPKG_ROOT}"
/bin/rm -rf ${MNT_POINT}/opt/musicstation 2>/dev/null
/bin/ln -sf "${QPKG_ROOT}/musicstation" ${MNT_POINT}/opt/
fi
if [ ! -f ${UPDATEPKG_DIR}/musicstation.tgz ] && [ ! -d /mnt/ext/opt/musicstation/api ]; then
/sbin/rmcfg MusicStation -f $QPKG_CONF 2>/dev/null
/sbin/setcfg MUSICSTATION Enable FALSE
return 1
fi
/bin/sed -i 's/QRINFOVAL_USESYSACCOUNT/'"${UseSysAccount}"'/g' /mnt/ext/opt/musicstation/api/libs/inc_common.php
if [ -f ${MNT_POINT}/opt/musicstation/api/radioclass.php ] && [ -d /mnt/ext/opt/MSV2/api ]; then
/bin/cp ${MNT_POINT}/opt/musicstation/api/radioclass.php /mnt/ext/opt/MSV2/api/
fi
[ -d /share/${MultimediaShare}/.@__thumb ] || /bin/mkdir /share/${MultimediaShare}/.@__thumb
[ -d /share/${MultimediaShare}/.@__thumb ] && /bin/chmod 777 /share/${MultimediaShare}/.@__thumb
[ -d ${MNT_POINT}/opt/musicstation/sound ] && /bin/cp -af ${MNT_POINT}/opt/musicstation/sound /share/${MultimediaShare}/.@__thumb/
[ -f /share/${MultimediaShare}/.@__thumb/MS.db ] && /bin/chmod 666 /share/${MultimediaShare}/.@__thumb/MS.db
if [ $MS_Enable = TRUE ]; then
enable_medialib start
/sbin/setcfg MultimediaStation USBSound TRUE -f $APP_RUNTIME_CONF
/sbin/setcfg MusicStation Enable TRUE -f $APP_RUNTIME_CONF
[ -d $UPNP_ROOT ] || /bin/mkdir -m 777 $UPNP_ROOT
/bin/grep "$UPNP_ROOT" /proc/mounts 1>/dev/null 2>/dev/null
[ $? = 0 ] || _djmounted=FALSE
if [ o${_djmounted} = oFALSE ]; then
for i in `/bin/pidof djmount`
do
/bin/kill -9 $i
sleep 1
done
if [ "x${BOOT_CONF}" = "xTS-NASARM" ]; then
[ -f /usr/local/bin/djmount ] && /usr/local/bin/djmount -o "allow_other,max_item=256,iocharset=UTF-8" $UPNP_ROOT
else
[ -f /usr/local/bin/djmount ] && /usr/local/bin/djmount -o "allow_other,max_item=512,iocharset=UTF-8" $UPNP_ROOT
fi
fi
[ -f /usr/local/sbin/speaker.sh ] || /bin/ln -sf ${MNT_POINT}/opt/musicstation/speaker.sh /usr/local/sbin/
[ -f /usr/bin/aumix ] || /bin/ln -sf /usr/local/sbin/aumix /usr/bin/
IMPORTFLAG=`/sbin/getcfg OPTIONS IMPORTFLAG -d 0 -f ${MEDIALIB_CONF}`
if [ "$IMPORTFLAG" = "0" ] && [ -x /usr/local/apache/bin/php ] && [ -f /mnt/ext/opt/musicstation/api/playlist_upgrade.php ]; then
/usr/local/apache/bin/php /mnt/ext/opt/musicstation/api/playlist_upgrade.php
/sbin/setcfg OPTIONS IMPORTFLAG 1 -f ${MEDIALIB_CONF}
fi
[ x0 = x`/sbin/getcfg OPTIONS INOTIFY -d 0 -f ${MEDIALIB_CONF}` ] || ${MEDIALIB_DBCMD} inotifyStart 1>>/dev/null 2>>/dev/null
if [ x1 = x`/sbin/getcfg OPTIONS DAILYBUILD -d 0 -f ${MEDIALIB_CONF}` ]; then
${MEDIALIB_DBCMD} SchedulBuild `/sbin/getcfg OPTIONS DAILYBUILD_MM -d 0 -f ${MEDIALIB_CONF}` `/sbin/getcfg OPTIONS DAILYBUILD_HH -d 0 -f ${MEDIALIB_CONF}`
fi
else
[ -d ${MNT_POINT}/opt/musicstation ] || /bin/mkdir ${MNT_POINT}/opt/musicstation
#/bin/rm -rf ${MNT_POINT}/opt/musicstation/* 2>>/dev/null
/bin/echo "The service is not enabled." > ${MNT_POINT}/opt/musicstation/index.php
[ ! -f ${MNT_POINT}/opt/musicstation/error.htm ] || /bin/cp ${MNT_POINT}/opt/musicstation/error.htm ${MNT_POINT}/opt/musicstation/index.php
enable_medialib stop
fi
fi
if [ $1 = "stop" ]; then
/bin/umount "$UPNP_ROOT" 1>>/dev/null 2>>/dev/null
sleep 1
for i in `/bin/pidof djmount`
do
/bin/kill -9 $i
sleep 1
done
/sbin/setcfg MultimediaStation USBSound TRUE -f $APP_RUNTIME_CONF
/sbin/setcfg MusicStation Enable FALSE -f $APP_RUNTIME_CONF
[ -d ${MNT_POINT}/opt/musicstation ] || /bin/mkdir ${MNT_POINT}/opt/musicstation
if [ $MS_Enable = TRUE ]; then
/bin/echo "The service is not activated." > ${MNT_POINT}/opt/musicstation/index.php
[ ! -f ${MNT_POINT}/opt/musicstation/error.htm ] || /bin/cp ${MNT_POINT}/opt/musicstation/error.htm ${MNT_POINT}/opt/musicstation/index.php
else
/bin/echo "The service is not enabled." > ${MNT_POINT}/opt/musicstation/index.php
[ ! -f ${MNT_POINT}/opt/musicstation/error.htm ] || /bin/cp ${MNT_POINT}/opt/musicstation/error.htm ${MNT_POINT}/opt/musicstation/index.php
fi
[ ! -f ${MNT_POINT}/opt/musicstation/api/libs/inc_common.php ] || /bin/rm -f ${MNT_POINT}/opt/musicstation/api/libs/inc_common.php
[ ! -f ${MNT_POINT}/opt/musicstation/api/libs/inc_common.php.disabled ] || /bin/cp ${MNT_POINT}/opt/musicstation/api/libs/inc_common.php.disabled ${MNT_POINT}/opt/musicstation/api/libs/inc_common.php
#${MEDIALIB_DBCMD} DelSchedulBuild 1>>/dev/null 2>>/dev/null
/bin/sed -i "/^.*mymediadbcmd.*buildall/d" /etc/config/crontab
/bin/sed -i "/^.*mymediadbcmd.*stopbuild/d" /etc/config/crontab
/bin/pidof crond 1>>/dev/null 2>>/dev/null
[ $? -ne 0 ] || /usr/bin/crontab /etc/config/crontab
${MEDIALIB_DBCMD} inotifyStop 1>>/dev/null 2>>/dev/null
${MEDIALIB_DBCMD} stopbuildall 1>>/dev/null 2>>/dev/null
enable_medialib stop
fi
}
function photo_scan()
{
case "$1" in
start)
/bin/kill `pidof photo_scand.sh` 2>/dev/null
/etc/init.d/photo_scand.sh 2>/dev/null &
;;
stop)
/sbin/daemon_mgr $PHOTO_SCAND stop "/sbin/photo_scand"
/bin/kill `pidof photo_scand.sh` 2>/dev/null
sleep 1
;;
*)
echo "do nothing"
;;
esac
}
function photostation2()
{
PS_Enable=`/sbin/getcfg PHOTOSTATION Enable -u -d TRUE`
UseSysAccount=`/sbin/getcfg PHOTOSTATION UseSysAccount -u -d x -f /etc/config/uLinux.conf`
if [ "x$PS_Hide" = "x1" ] && [ x"$PS_Enable" = x"TRUE" ]; then
/sbin/setcfg PHOTOSTATION Enable FALSE
PS_Enable="FALSE"
fi
PS_QPKG=`/sbin/getcfg PhotoStation QPKG -u -d FALSE -f $APP_RUNTIME_CONF`
PS_QPKG_Name=`/sbin/getcfg PhotoStation Name -u -d X -f $QPKG_CONF`
if [ ! -f ${UPDATEPKG_DIR}/.PhotoStation_removed ] && [ x"$PS_QPKG" = xTRUE ] && [ x"$PS_QPKG_Name" = xX ]; then
set_def_qpkg_info PhotoStation
elif [ ! -f ${UPDATEPKG_DIR}/.PhotoStation_removed ] && [ ! -f "/tmp/.PhotoStation.updated" ] && [ ! -d ${UPDATEPKG_DIR}/PhotoStation ] && [ x"$PS_QPKG" = xTRUE ]; then
set_def_qpkg_info PhotoStation
fi
if [ x"$PS_QPKG" = xTRUE ] && [ x"$PS_QPKG_Name" != xX ]; then
#use QPKG
PS_QPKG_Enable=`/sbin/getcfg PhotoStation Enable -u -d FALSE -f $QPKG_CONF`
if [ "x$PS_Hide" = "x1" ] && [ x"$PS_QPKG_Enable" = x"TRUE" ]; then
[ -f ${UPDATEPKG_DIR}/.PhotoStation_removed ] || /sbin/setcfg PhotoStation Enable FALSE -f $QPKG_CONF
PS_QPKG_Enable="FALSE"
fi
if [ ! -z "$PS_QPKG_Enable" ] && [ x"$PS_Enable" != x"$PS_QPKG_Enable" ]; then
PS_Enable=$PS_QPKG_Enable
/sbin/setcfg PHOTOSTATION Enable "$PS_QPKG_Enable"
fi
fi
if [ $1 = "start" ]; then
if [ ! -d "${MMSHARE_PATH}" ]; then
echo "${MultimediaShare} directory is not ready."
exit 1
fi
if [ x"$PS_QPKG" = xTRUE ] && [ -f ${UPDATEPKG_DIR}/.PhotoStation_removed ]; then
[ ! -f ${UPDATEPKG_DIR}/photostation2.tgz ] || /bin/rm -f ${UPDATEPKG_DIR}/photostation2.tgz
return 1
fi
if [ -f ${UPDATEPKG_DIR}/photostation2.tgz ]; then
/bin/tar zxf ${UPDATEPKG_DIR}/photostation2.tgz -C "${QPKG_ROOT}" 2>>/dev/null
/bin/rm -rf ${MNT_POINT}/opt/photostation2 2>/dev/null
/bin/ln -sf "${QPKG_ROOT}/photostation2" ${MNT_POINT}/opt/
fi
if [ ! -f ${UPDATEPKG_DIR}/photostation2.tgz ] && [ ! -d /mnt/ext/opt/photostation2/api ]; then
/sbin/rmcfg PhotoStation -f $QPKG_CONF 2>/dev/null
/sbin/setcfg PHOTOSTATION Enable FALSE
return 1
fi
[ -d ${MNT_POINT}/opt/photostation2/Samples ] || /bin/ln -sf ${MNT_POINT}/opt/MSV2/Samples ${MNT_POINT}/opt/photostation2/Samples
[ ! -f /mnt/ext/opt/photostation2/api/fileclass.php ] || /bin/cp /mnt/ext/opt/photostation2/api/fileclass.php /mnt/ext/opt/MSV2/api/fileclass.php
if [ -d /share/${MultimediaShare}/.@__thumb ]; then
if [ ! -f "/share/${MultimediaShare}/.@__thumb/PS_data.db" ]; then
/bin/cp /mnt/ext/opt/photostation2/api/libs/PS_data_basic.db "/share/${MultimediaShare}/.@__thumb/PS_data.db"
chown httpdusr "/share/${MultimediaShare}/.@__thumb/PS_data.db"
fi
chmod 666 "/share/${MultimediaShare}/.@__thumb/PS_data.db"
[ ! -f "/share/${MultimediaShare}/.@__thumb/MS_data.db" ] || chmod 666 "/share/${MultimediaShare}/.@__thumb/MS_data.db"
fi
/bin/sed -i 's/QINFOVAL_PLATFORM/'"${BOOT_CONF}"'/g' ${MNT_POINT}/opt/photostation2/api/libs/inc_common.php
/bin/sed -i 's/QINFOVAL_DEMO_SITE/'"${DEMO_SITE_SUPPORT}"'/g' ${MNT_POINT}/opt/photostation2/api/libs/inc_common.php
FFmpegExtra=`/sbin/getcfg MultimediaStation FFmpegExtra -u -d FALSE -f $APP_RUNTIME_CONF`
/bin/sed -i 's/QINFOVAL_MS_EXTRA/'"${FFmpegExtra}"'/g' ${MNT_POINT}/opt/photostation2/api/libs/inc_common.php
/bin/sed -i 's/QINFOVAL_MS_FILE_ROOT/'"\/share\/${MultimediaShare}"'/g' ${MNT_POINT}/opt/photostation2/api/libs/inc_common.php
/bin/sed -i 's/QRINFOVAL_USESYSACCOUNT/'"${UseSysAccount}"'/g' /mnt/ext/opt/photostation2/api/libs/inc_common.php
if [ $PS_Enable != TRUE ]; then
[ -d ${MNT_POINT}/opt/photostation2 ] || /bin/mkdir ${MNT_POINT}/opt/photostation2
/bin/echo "Photo Station is not enabled." > ${MNT_POINT}/opt/photostation2/index.php
[ ! -f ${MNT_POINT}/opt/photostation2/disabled_page.html ] || /bin/cp ${MNT_POINT}/opt/photostation2/disabled_page.html ${MNT_POINT}/opt/photostation2/index.php
else
photo_scan start
/sbin/setcfg PhotoStation Enable TRUE -f $APP_RUNTIME_CONF
fi
[ -f /tmp/geoip.xml ] && /bin/ln -sf /tmp/geoip.xml ${MNT_POINT}/opt/photostation2/geoip.xml
fi
if [ $1 = "stop" ]; then
photo_scan stop
/sbin/setcfg PhotoStation Enable FALSE -f $APP_RUNTIME_CONF
[ -d ${MNT_POINT}/opt/photostation2 ] || /bin/mkdir ${MNT_POINT}/opt/photostation2
if [ $PS_Enable = TRUE ]; then
/bin/echo "The service is not activated." > ${MNT_POINT}/opt/photostation2/index.php
[ ! -f ${MNT_POINT}/opt/photostation2/disabled_page.html ] || /bin/cp ${MNT_POINT}/opt/photostation2/disabled_page.html ${MNT_POINT}/opt/photostation2/index.php
else
/bin/echo "The service is not enabled." > ${MNT_POINT}/opt/photostation2/index.php
[ ! -f ${MNT_POINT}/opt/photostation2/disabled_page.html ] || /bin/cp ${MNT_POINT}/opt/photostation2/disabled_page.html ${MNT_POINT}/opt/photostation2/index.php
fi
[ ! -f ${MNT_POINT}/opt/photostation2/api/libs/inc_common.php ] || /bin/rm -f ${MNT_POINT}/opt/photostation2/api/libs/inc_common.php
[ ! -f ${MNT_POINT}/opt/photostation2/api/libs/inc_common.php.disabled ] || /bin/cp ${MNT_POINT}/opt/photostation2/api/libs/inc_common.php.disabled ${MNT_POINT}/opt/photostation2/api/libs/inc_common.php
fi
}
function mmstation(){
QPHOTO_Enable=`/sbin/getcfg QPHOTO Enable -u -d TRUE` #MSV2
if [ "x$QPHOTO_Hide" = "x1" ] && [ x"$QPHOTO_Enable" = x"TRUE" ]; then
/sbin/setcfg QPHOTO Enable FALSE
QPHOTO_Enable="FALSE"
fi
if [ $1 = "start" ]; then
if [ $QPHOTO_Enable = TRUE ]; then
if [ x${MSV2_SUPPORT} = xTRUE ]; then
if [ x${MSV2_SUPPORT} = xTRUE ] && [ -f ${UPDATEPKG_DIR}/MSV2.tgz ]; then
cd ${MNT_POINT}/opt/
/bin/tar zxf ${UPDATEPKG_DIR}/MSV2.tgz MSV2/index.php
fi
[ -f /sbin/flv_convertd ] && /sbin/daemon_mgr flv_convertd start "/sbin/flv_convertd -d"
index_file=index`/sbin/getcfg System "Build Number" -f /etc/default_config/uLinux.conf`
if [ -f ${MNT_POINT}/opt/MSV2/index.swf ] || [ -f "${MNT_POINT}/opt/MSV2/${index_file}.swf" ]; then
/bin/grep INDEXSWFFILENAME ${MNT_POINT}/opt/MSV2/index.php 1>>/dev/null 2>>/dev/null
if [ $? -eq 0 ]; then
/bin/sed -i 's/INDEXSWFFILENAME/'"${index_file}"'/g' ${MNT_POINT}/opt/MSV2/index.php
[ -f ${MNT_POINT}/opt/MSV2/index.swf ] && /bin/rm -f ${MNT_POINT}/opt/MSV2/index20*.swf
/bin/mv ${MNT_POINT}/opt/MSV2/index.swf "${MNT_POINT}/opt/MSV2/${index_file}.swf" 2>/dev/null
fi
fi
/bin/rm -rf /home/httpd/cgi-bin/Qmultimedia/* 2>>/dev/null
/bin/rm -rf /home/httpd/Qmultimedia/* 2>>/dev/null
[ -d /home/httpd/Qmultimedia/ ] && /bin/echo "Page not found." > /home/httpd/Qmultimedia/index.html
fi
echo "."
else
if [ x${MSV2_SUPPORT} = xTRUE ]; then
[ -d ${MNT_POINT}/opt/MSV2 ] || /bin/mkdir ${MNT_POINT}/opt/MSV2
# /bin/rm -rf ${MNT_POINT}/opt/MSV2/* 2>>/dev/null
/bin/echo "Multimedia Station is not enabled." > ${MNT_POINT}/opt/MSV2/index.php
fi
fi
fi #end of start
if [ $1 = "stop" ]; then
if [ -f /sbin/flv_convertd ]; then
/sbin/daemon_mgr flv_convertd stop "/sbin/flv_convertd -d"
[ ! -f /var/lock/flv_convertd ] || /bin/kill -9 `/bin/cat /var/lock/flv_convertd` 2>/dev/null
[ ! -f /var/lock/flv_convertd ] || /bin/rm -f /var/lock/flv_convertd
fi
/bin/echo "The service is not enabled." > ${MNT_POINT}/opt/MSV2/index.php
fi
}
make_qpkg_base "$1"
case "$1" in
start)
echo -n "Starting media stations: "
check_audio_dev
if [ ! -f /tmp/geoip.xml ]; then
/bin/touch /tmp/geoip.xml
[ -f /mnt/ext/opt/photostation2/geoip.xml ] && /bin/cp /mnt/ext/opt/photostation2/geoip.xml /tmp/geoip.xml
/sbin/curl -4 --retry 2 --connect-timeout 30 -m 30 http://www.mycloudnas.com/geoip/getMyGeoIP.php -o /tmp/geoip.xml 2>/dev/null &
fi
if [ ! -d "${MMSHARE_PATH}" ]; then
echo "${MultimediaShare} directory is not ready."
exit 1
else
/bin/chmod 777 "${MMSHARE_PATH}"
fi
mmscan_schedule
if [ x${MSV2_SUPPORT} = xTRUE ] && [ -f ${UPDATEPKG_DIR}/MSV2.tgz ]; then
/bin/tar zxf ${UPDATEPKG_DIR}/MSV2.tgz -C "${QPKG_ROOT}"
/bin/rm -rf ${MNT_POINT}/opt/MSV2 2>/dev/null
/bin/ln -sf "${QPKG_ROOT}/MSV2" ${MNT_POINT}/opt/
fi
if [ -d "${MNT_POINT}/opt/MSV2" ]; then
[ -d /share/${MultimediaShare}/.@__thumb/image_frame ] || /bin/mkdir -p /share/${MultimediaShare}/.@__thumb/image_frame
/bin/chmod 777 /share/${MultimediaShare}/.@__thumb
/bin/chmod 777 /share/${MultimediaShare}/.@__thumb/image_frame
[ -f /share/${MultimediaShare}/.@__thumb/MS.db ] && /bin/chmod 666 /share/${MultimediaShare}/.@__thumb/MS.db
[ ! -f "/share/${MultimediaShare}/.@__thumb/MS_data.db" ] || chmod 666 "/share/${MultimediaShare}/.@__thumb/MS_data.db"
[ ! -f "/share/${MultimediaShare}/.@__thumb/PS_data.db" ] || chmod 666 "/share/${MultimediaShare}/.@__thumb/PS_data.db"
[ -d ${MNT_POINT}/opt/MSV2/image_frame ] && /bin/cp -a ${MNT_POINT}/opt/MSV2/image_frame/*.png /share/${MultimediaShare}/.@__thumb/image_frame/
/bin/chmod 666 /share/${MultimediaShare}/.@__thumb/image_frame/*.png
if [ ! -f /share/${MultimediaShare}/.@__thumb/install.lock ]; then
content=`/bin/ls "/share/${MultimediaShare}/"`
if [ -z "${content}" ] && [ -d ${MNT_POINT}/opt/MSV2/Samples ]; then
/bin/cp -a ${MNT_POINT}/opt/MSV2/Samples /share/${MultimediaShare}/
[ ! -d /share/${MultimediaShare}/Samples/thumb ] || /bin/rm -rf /share/${MultimediaShare}/Samples/thumb
/bin/chmod 777 /share/${MultimediaShare}/Samples
/bin/chmod 666 /share/${MultimediaShare}/Samples/*.jpg
if [ -x /usr/local/apache/bin/php ]; then
[ -f ${MNT_POINT}/opt/MSV2/init_samples.php ] && /usr/local/apache/bin/php -c $PHP_INI ${MNT_POINT}/opt/MSV2/init_samples.php
[ $? = 0 ] && /bin/touch /share/${MultimediaShare}/.@__thumb/install.lock
fi
else
/bin/touch /share/${MultimediaShare}/.@__thumb/install.lock
fi
fi
[ ! -f /share/${MultimediaShare}/.@__thumb/install.lock ] || /bin/rm -f ${MNT_POINT}/opt/MSV2/init_samples.php
fi
[ ! -f ${MNT_POINT}/opt/MSV2/speaker.sh ] || /bin/ln -sf ${MNT_POINT}/opt/MSV2/speaker.sh /usr/local/sbin/
[ -f /usr/bin/aumix ] || /bin/ln -sf /usr/local/sbin/aumix /usr/bin/
[ -f "${BACKUP_ALARM_INFO}" ] && /bin/cp -af "${BACKUP_ALARM_INFO}" "${RUNTIME_ALARM_INFO}"
[ -f /sbin/lpb_scheduler ] && /sbin/daemon_mgr lpb_scheduler start "/sbin/lpb_scheduler -d"
[ ! -f /tmp/.2genth.ing ] || /bin/rm -f /tmp/.2genth.ing 2>/dev/null
[ -f /sbin/genthd ] && /sbin/daemon_mgr genthd start "/sbin/genthd&"
if [ -x ${MNT_POINT}/opt/MSV2/bin/dcraw ] && [ ! -x /usr/local/sbin/dcraw ]; then
/bin/ln -sf ${MNT_POINT}/opt/MSV2/bin/dcraw /usr/local/sbin/
fi
echo -n "Multimedia Station, "
mmstation start
echo -n "Music Station, "
musicstation start
echo -n "Photo Station. "
photostation2 start
echo
;;
stop)
echo -n "Shutting down media stations: "
if [ x${MSV2_SUPPORT} = xTRUE ] && [ -f /sbin/flv_convertd ]; then
[ -f /sbin/lpb_scheduler ] && /sbin/daemon_mgr lpb_scheduler stop "/sbin/lpb_scheduler -d"
[ ! -f /var/lock/flv_convertd.lpb_scheduler ] || /bin/kill -9 `/bin/cat /var/lock/flv_convertd.lpb_scheduler` 2>/dev/null
[ ! -f /var/lock/flv_convertd.lpb_scheduler ] || /bin/rm -f /var/lock/flv_convertd.lpb_scheduler
[ -f /sbin/genthd ] && /sbin/daemon_mgr genthd stop "/sbin/genthd"
[ -f "${RUNTIME_ALARM_INFO}" ] && /bin/cp -af "${RUNTIME_ALARM_INFO}" "${BACKUP_ALARM_INFO}"
#/bin/sed -i '/ImRd.sh/d' /etc/config/crontab
#/bin/pidof crond 1>>/dev/null 2>>/dev/null
#[ $? -ne 0 ] || /usr/bin/crontab /etc/config/crontab
fi
if [ -d "/share/${MultimediaShare}/.@__thumb/magick_tmpdir" ]; then
/bin/chmod 777 "/share/${MultimediaShare}/.@__thumb/magick_tmpdir"
/bin/rm -rf /share/${MultimediaShare}/.@__thumb/magick_tmpdir/*
fi
echo -n "Multimedia Station, "
mmstation stop
echo -n "Music Station, "
musicstation stop
echo -n "Photo Station. "
photostation2 stop
/bin/kill `pidof inotifywait` 2>/dev/null
echo
;;
restart)
$0 stop
$0 start
;;
notify)
# notify daemon that a new job is the queue
#/bin/kill -USR1 `pidof ImRd`
;;
bgThGen)
trgtFolder="/share/${MultimediaShare}"
if [ ! -z "${2}" ]; then
[ -d "${2}" ] || exit 1
trgtFolder="${2}"
fi
QPHOTO_Enable=`/sbin/getcfg QPHOTO Enable -u -d TRUE`
[ x"$QPHOTO_Enable" = x"TRUE" ] || ThumbnailGenerator="/mnt/ext/opt/photostation2/api/background_conversion.php"
if [ x${MSV2_SUPPORT} = xTRUE ]; then
[ -f $ThumbnailGenerator ] || exit 1
ret=1
for i in `/bin/pidof php`
do
/bin/cat /proc/$i/cmdline | /bin/grep "$ThumbnailGenerator" 1>>/dev/null 2>>/dev/null
[ $? -eq 0 ] && ret=0 && break
done
else
/bin/ps | /bin/grep "ImR_all" | /bin/grep "soft" 1>>/dev/null 2>>/dev/null
ret=$?
fi
if [ $ret -eq 0 ]; then
/bin/echo "bgThGen is running."
exit 1
fi
/bin/echo "ImRd bgThGen start."
[ ! -f "/tmp/.bgThGen.last" ] || /bin/rm -f "/tmp/.bgThGen.last"
if [ x${MSV2_SUPPORT} = xTRUE ]; then
j=1
while [ $j -le 10 ] ; do
ret=1
for i in `/bin/pidof php`
do
/bin/cat /proc/$i/cmdline | /bin/grep "$ThumbnailGenerator" 1>>/dev/null 2>>/dev/null
[ $? -eq 0 ] && ret=0 && break
done
[ $ret = 0 ] || /usr/local/apache/bin/php -c $PHP_INI -d memory_limit=128M $ThumbnailGenerator "${trgtFolder}" 1000
j=$(($j+1))
[ -f "/tmp/.bgThGen.last" ] || break
done
else
/usr/local/sbin/ImR_all -soft /Qmultimedia 1>>/dev/null 2>>/dev/null
fi
/bin/echo "bgThGen finished."
;;
musicstation)
musicstation $2
;;
photostation2)
photostation2 $2
;;
mmstation)
mmstation $2
;;
mmscan_schedule)
mmscan_schedule
;;
*)
echo "Usage: /etc/init.d/$0 {start|stop|restart}"
exit 1
esac
[ -d /home/httpd/cgi-bin/apps ] && /sbin/user_cmd -1 /etc/qos.ui.sm.conf > /home/httpd/cgi-bin/apps/start.json
exit 0