532 lines
16 KiB
Bash
Executable File
532 lines
16 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# Copyright (c) 2010 Sourcefabric O.P.S.
|
|
#
|
|
# This file is part of the Campcaster project.
|
|
# http://campcaster.campware.org/
|
|
#
|
|
# Campcaster is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# Campcaster is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with Campcaster; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
#
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#DEBUG=yes
|
|
#DEBUG_I=yes
|
|
|
|
if [ "x$1" != "x" ]; then
|
|
COMM=$1
|
|
shift
|
|
GUNID=$1
|
|
fi
|
|
|
|
METADATA="<?xml version=\"1.0\"?>
|
|
<audioClip>
|
|
<metadata
|
|
xmlns=\"http://mdlf.org/campcaster/elements/1.0/\"
|
|
xmlns:ls=\"http://mdlf.org/campcaster/elements/1.0/\"
|
|
xmlns:dc=\"http://purl.org/dc/elements/1.1/\"
|
|
xmlns:dcterms=\"http://purl.org/dc/terms/\"
|
|
xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"
|
|
>
|
|
<dc:title>Media title testRunner</dc:title>
|
|
<dcterms:extent>00:00:03.000000</dcterms:extent>
|
|
</metadata>
|
|
</audioClip>"
|
|
METAREGEX="(<\\?xml version=\"1\\.0\"( encoding=\"UTF-8\")?\\?> )?\
|
|
<audioClip>\
|
|
<metadata\
|
|
xmlns=\"http://mdlf\\.org/campcaster/elements/1\\.0/\"\
|
|
xmlns:dc=\"http://purl\\.org/dc/elements/1\\.1/\"\
|
|
xmlns:dcterms=\"http://purl\\.org/dc/terms/\"\
|
|
xmlns:ls=\"http://mdlf\\.org/campcaster/elements/1\\.0/\"\
|
|
xmlns:xml=\"http://www\\.w3\\.org/XML/1998/namespace\"\
|
|
>\
|
|
<dc:title>Media title testRunner</dc:title>\
|
|
<dcterms:extent>00:00:03\\.000000</dcterms:extent>\
|
|
<ls:mtime>[0-9]{4}(-[0-9]{2}){2}T[0-9]{2}(:[0-9]{2}){2}([-+][0-9]{1,2}:[0-9]{2})?</ls:mtime>\
|
|
</metadata>\
|
|
</audioClip>"
|
|
|
|
echo ""
|
|
XRDIR=`dirname $0`
|
|
XMLRPC=`cd var/install; php -q getXrUrl.php` || exit $?
|
|
echo "# storageServer XMLRPC URL: $XMLRPC"
|
|
|
|
cd $XRDIR
|
|
#XR_CLI="./xr_cli_test.py -s ${XMLRPC}"
|
|
XR_CLI="php -q xr_cli_test.php -s ${XMLRPC}"
|
|
|
|
login() {
|
|
echo -n "# login: "
|
|
SESSID=`$XR_CLI login root q` || \
|
|
{ ERN=$?; echo $SESSID; exit $ERN; }
|
|
echo "sessid: $SESSID"
|
|
}
|
|
|
|
test() {
|
|
echo "# test: "
|
|
$XR_CLI test $SESSID stringForUppercase || exit $?
|
|
}
|
|
|
|
existsAudioClip() {
|
|
echo -n "# existsAudioClip (${GUNID}): "
|
|
$XR_CLI existsAudioClip $SESSID $GUNID || exit $?
|
|
}
|
|
|
|
storeAudioClip() {
|
|
if [ "x$1" = "x" ]; then MEDIA=../tests/ex1.mp3; else MEDIA=$1; fi
|
|
if [ "x$2" = "x" ]; then GUNID=""; else GUNID=$2; fi
|
|
MD5=`md5sum $MEDIA`; for i in $MD5; do MD5=$i; break; done
|
|
if [ $DEBUG_I ]; then echo "md5=$MD5"; fi
|
|
echo -n "# storeAudioClipOpen: "
|
|
RES=`$XR_CLI storeAudioClipOpen "$SESSID" "$GUNID" "$METADATA" "stored file.mp3" "$MD5"` || \
|
|
{ ERN=$?; echo $RES; exit $ERN; }
|
|
unset URL
|
|
for i in $RES; do if [ -z $URL ] ; then URL=$i; else TOKEN=$i; fi; done
|
|
echo $TOKEN
|
|
if [ $DEBUG_I ]; then echo $URL; fi
|
|
if [ $DEBUG_I ]; then echo -n "Press enter ..."; read KEY; fi
|
|
echo -n "# curl (PUT): "
|
|
curl -C 0 -T $MEDIA $URL || { ERN=$?; echo $RGUNID; exit $ERN; }
|
|
echo "status: $?"
|
|
if [ $DEBUG_I ]; then echo -n "Press enter ..."; read KEY; fi
|
|
echo -n "# storeAudioClipClose: "
|
|
RGUNID=`$XR_CLI storeAudioClipClose "$SESSID" "$TOKEN"` || \
|
|
{ ERN=$?; echo $RGUNID; exit $ERN; }
|
|
echo $RGUNID
|
|
}
|
|
|
|
accessRawAudioData() {
|
|
echo -n "# accessRawAudioData: "
|
|
RES=`$XR_CLI accessRawAudioData $SESSID $GUNID` || \
|
|
{ ERN=$?; echo $RES; exit $ERN; }
|
|
unset URL
|
|
for i in $RES; do if [ -z $URL ] ; then URL=$i; else TOKEN=$i; fi; done
|
|
echo $TOKEN
|
|
if [ $DEBUG_I ]; then echo $URL; fi
|
|
if [ $DEBUG_I ]; then echo -n "Press enter ..."; read KEY; fi
|
|
echo -n "# releaseRawAudioData: "
|
|
$XR_CLI releaseRawAudioData $TOKEN || exit $?
|
|
}
|
|
|
|
downloadRAD() {
|
|
echo -n "# downloadRawAudioDataOpen: "
|
|
RES=`$XR_CLI downloadRawAudioDataOpen $SESSID $GUNID` || \
|
|
{ ERN=$?; echo $RES; exit $ERN; }
|
|
unset URL
|
|
for i in $RES; do if [ -z $URL ] ; then URL=$i; else TOKEN=$i; fi; done
|
|
echo $TOKEN
|
|
if [ $DEBUG_I ]; then echo $URL; fi
|
|
if [ $DEBUG_I ]; then echo -n "Press enter ..."; read KEY; fi
|
|
echo -n "# curl: "
|
|
curl -Ifs $URL > /dev/null || { ERN=$?; echo $URL; exit $ERN; }
|
|
echo "status: $?"
|
|
echo -n "# downloadRawAudioDataClose: "
|
|
$XR_CLI downloadRawAudioDataClose $SESSID $TOKEN || exit $?
|
|
}
|
|
|
|
downloadMeta() {
|
|
echo -n "# downloadMetadataOpen: "
|
|
RES=`$XR_CLI downloadMetadataOpen $SESSID $GUNID` || \
|
|
{ ERN=$?; echo $RES; exit $ERN; }
|
|
unset URL
|
|
for i in $RES; do if [ -z $URL ] ; then URL=$i; else TOKEN=$i; fi; done
|
|
echo $TOKEN
|
|
if [ $DEBUG_I ]; then echo $URL; fi
|
|
if [ $DEBUG_I ]; then echo -n "Press enter ..."; read KEY; fi
|
|
echo -n "# curl: "
|
|
METAOUT=`curl -fs $URL;` || { ERN=$?; echo $RES; exit $ERN; }
|
|
echo "OK"
|
|
if [ $DEBUG_I ]; then echo $METAOUT; echo -n "Press enter ..."; read KEY; fi
|
|
echo -n "# metadata check:"
|
|
METAOUT=`echo $METAOUT | sed -e 's/\\n/ /g'`
|
|
if [[ "x$METAOUT" =~ "x$METAREGEX" ]]; then
|
|
echo " OK"
|
|
else
|
|
echo " NOT MATCH ($?)"
|
|
echo " Expected match to regex:"; echo $METAREGEX
|
|
echo " Downloaded:"; echo ${METAOUT}
|
|
exit 1
|
|
fi
|
|
echo -n "# downloadMetadataClose: "
|
|
$XR_CLI downloadMetadataClose $SESSID $TOKEN || exit $?
|
|
}
|
|
|
|
deleteAudioClip() {
|
|
echo -n "# deleteAudioClip: "
|
|
# disabled:
|
|
# $XR_CLI deleteAudioClip $SESSID $GUNID || exit $?
|
|
$XR_CLI deleteAudioClip $SESSID $GUNID 0
|
|
}
|
|
|
|
updateAudioClipMetadata() {
|
|
echo -n "#updateAudioClipMetadata: "
|
|
$XR_CLI updateAudioClipMetadata $SESSID $GUNID "$METADATA" || exit $?
|
|
}
|
|
|
|
getAudioClip() {
|
|
echo -n "#getAudioClip: "
|
|
$XR_CLI getAudioClip $SESSID $GUNID || exit $?
|
|
}
|
|
|
|
searchMetadata() {
|
|
echo -n "# searchMetadata: "
|
|
RES=`$XR_CLI searchMetadata $SESSID 'title' 'testRunner'` || \
|
|
{ ERN=$?; echo $RES; exit $ERN; }
|
|
echo $RES
|
|
}
|
|
|
|
browseCategory() {
|
|
echo -n "# browseCategory: "
|
|
RES=`$XR_CLI browseCategory $SESSID 'title' 'title' 'testRunner'` || \
|
|
{ ERN=$?; echo $RES; exit $ERN; }
|
|
echo $RES
|
|
}
|
|
|
|
storeWebstream() {
|
|
URL="http://localhost/x"
|
|
echo -n "# storeWebstream: "
|
|
RGUNID=`$XR_CLI storeWebstream "$SESSID" '' "$METADATA" "new stream" "$URL"` || \
|
|
{ ERN=$?; echo $RGUNID; exit $ERN; }
|
|
echo $RGUNID
|
|
}
|
|
|
|
PLID="123456789abcdef8"
|
|
|
|
createPlaylist() {
|
|
echo -n "# createPlaylist: "
|
|
$XR_CLI deletePlaylist $SESSID $PLID 1
|
|
$XR_CLI createPlaylist $SESSID $PLID "newPlaylist.xml" || exit $?
|
|
}
|
|
|
|
accessPlaylist() {
|
|
echo -n "# accessPlaylist: "
|
|
RES=`$XR_CLI accessPlaylist $SESSID $PLID` || \
|
|
{ ERN=$?; echo $RES; exit $ERN; }
|
|
unset URL
|
|
for i in $RES; do if [ -z $URL ] ; then URL=$i; else TOKEN=$i; fi; done
|
|
echo $TOKEN
|
|
if [ $DEBUG_I ]; then echo $URL; fi
|
|
echo "# curl: "
|
|
CURLOUT=`curl -fs $URL;` || { ERN=$?; echo $RES; exit $ERN; }
|
|
if [ $DEBUG ]; then echo $CURLOUT; fi
|
|
# echo $CURLOUT
|
|
if [ $DEBUG_I ]; then echo -n "Press enter ..."; read KEY; fi
|
|
echo "# status: $?"
|
|
if [ $DEBUG_I ]; then echo -n "Press enter ..."; read KEY; fi
|
|
echo -n "# releasePlaylist: "
|
|
$XR_CLI releasePlaylist $TOKEN || exit $?
|
|
}
|
|
|
|
editPlaylist() {
|
|
DATE=`date '+%H:%M:%S'`
|
|
PLAYLIST="<?xml version=\"1.0\" encoding=\"utf-8\"?>
|
|
<playlist id=\"123456789abcdef8\" playlength=\"01:30:00.000000\"
|
|
title=\"My First Playlist\">
|
|
<playlistElement id=\"0000000000000101\" relativeOffset=\"0\" >
|
|
<audioClip id=\"0000000000010001\" playlength=\"01:00:00.000000\"
|
|
title=\"one\"/>
|
|
</playlistElement>
|
|
<playlistElement id=\"0000000000000102\" relativeOffset=\"01:00:00.000000\" >
|
|
<audioClip id=\"0000000000010002\" playlength=\"00:30:00.000000\"
|
|
title=\"two\"/>
|
|
</playlistElement>
|
|
<metadata
|
|
xmlns=\"http://www.streamonthefly.org/\"
|
|
xmlns:dc=\"http://purl.org/dc/elements/1.1/\"
|
|
xmlns:dcterms=\"http://purl.org/dc/terms/\"
|
|
xmlns:xbmf=\"http://www.streamonthefly.org/xbmf\"
|
|
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
|
|
>
|
|
<dc:title>My First Playlist</dc:title>
|
|
<dc:creator>Me, myself and I</dc:creator>
|
|
<dcterms:extent>01:30:00.000000</dcterms:extent>
|
|
</metadata>
|
|
</playlist>
|
|
"
|
|
echo -n "# editPlaylist: "
|
|
RES=`$XR_CLI editPlaylist $SESSID $PLID` || \
|
|
{ ERN=$?; echo $RES; exit $ERN; }
|
|
unset URL
|
|
for i in $RES; do if [ -z $URL ] ; then URL=$i; else TOKEN=$i; fi; done
|
|
echo $TOKEN
|
|
# deletePlaylist
|
|
if [ $DEBUG_I ]; then echo $URL; fi
|
|
if [ $DEBUG_I ]; then echo -n "Press enter ..."; read KEY; fi
|
|
if [ $DEBUG_I ]; then echo " Playlist:"; echo $PLAYLIST; fi
|
|
echo -n "# savePlaylist: "
|
|
$XR_CLI savePlaylist $SESSID $TOKEN "$PLAYLIST" || exit $?
|
|
}
|
|
|
|
existsPlaylist() {
|
|
echo -n "# existsPlaylist (${PLID}): "
|
|
EXISTS=`$XR_CLI existsPlaylist $SESSID $PLID` || \
|
|
{ ERN=$?; echo $EXISTS; exit $ERN; }
|
|
echo $EXISTS
|
|
}
|
|
|
|
deletePlaylist() {
|
|
if [ "$EXISTS" != "FALSE" ]; then
|
|
echo -n "# deletePlaylist (${PLID}): "
|
|
# disabled:
|
|
# $XR_CLI deletePlaylist $SESSID $PLID || exit $?
|
|
$XR_CLI deletePlaylist $SESSID $PLID 0
|
|
echo "# status: $?"
|
|
fi
|
|
}
|
|
|
|
exportPlaylist() {
|
|
storeAudioClip ../tests/0000000000010001 0000000000010001
|
|
storeAudioClip ../tests/0000000000010002 0000000000010002
|
|
echo -n "# exportPlaylistOpen (${PLID}): "
|
|
# RES=`$XR_CLI exportPlaylistOpen $SESSID $PLID smil` || \
|
|
RES=`$XR_CLI exportPlaylistOpen $SESSID $PLID lspl` || \
|
|
{ ERN=$?; echo $RES; exit $ERN; }
|
|
unset URL
|
|
for i in $RES; do if [ -z $URL ] ; then URL=$i; else TOKEN=$i; fi; done
|
|
echo $TOKEN
|
|
echo -n "# curl: "
|
|
curl -Ifs $URL > /dev/null || { ERN=$?; echo $URL; exit $ERN; }
|
|
echo "status: $?"
|
|
echo -n "# exportPlaylistClose (${TOKEN}): "
|
|
RES=`$XR_CLI exportPlaylistClose $TOKEN` || \
|
|
{ ERN=$?; echo $RES; exit $ERN; }
|
|
echo $RES
|
|
}
|
|
|
|
importPlaylist() {
|
|
echo -n "# importPlaylistOpen: "
|
|
ARCHIVE=../tests/exportedPl_lspl.tar
|
|
# ARCHIVE=../tests/exportedPl_smil.tar
|
|
$XR_CLI deletePlaylist $SESSID 0000000000000001 1
|
|
$XR_CLI deletePlaylist $SESSID 0000000000000003 1
|
|
$XR_CLI deleteAudioClip $SESSID 0000000000010001 1
|
|
$XR_CLI deleteAudioClip $SESSID 0000000000010002 1
|
|
$XR_CLI deleteAudioClip $SESSID 0000000000010003 1
|
|
CHSUM=`md5sum $ARCHIVE | cut -d ' ' -f 1 `
|
|
RES=`$XR_CLI importPlaylistOpen $SESSID $CHSUM` || \
|
|
{ ERN=$?; echo $RES; exit $ERN; }
|
|
unset URL
|
|
for i in $RES; do if [ -z $URL ] ; then URL=$i; else TOKEN=$i; fi; done
|
|
echo $TOKEN
|
|
echo -n "# curl (PUT $URL): "
|
|
curl -C 0 -T $ARCHIVE $URL || { ERN=$?; echo "curl error"; exit $ERN; }
|
|
echo "status: $?"
|
|
echo -n "# importPlaylistClose (${TOKEN}): "
|
|
RES=`$XR_CLI importPlaylistClose $TOKEN` || \
|
|
{ ERN=$?; echo $RES; exit $ERN; }
|
|
echo $RES
|
|
GUNID=0000000000010001; existsAudioClip;
|
|
GUNID=0000000000010002; existsAudioClip;
|
|
GUNID=0000000000010003; existsAudioClip;
|
|
PLID=0000000000000001; existsPlaylist;
|
|
PLID=0000000000000003; existsPlaylist;
|
|
}
|
|
|
|
prefTest() {
|
|
PREFKEY="testKey"
|
|
PREFVAL="test preference value"
|
|
echo -n "# savePref ($PREFKEY): "
|
|
$XR_CLI savePref $SESSID "$PREFKEY" "$PREFVAL"|| exit $?
|
|
echo -n "# loadPref ($PREFKEY): "
|
|
VAL=`$XR_CLI loadPref $SESSID "$PREFKEY"` || \
|
|
{ ERN=$?; echo $VAL; exit $ERN; }
|
|
echo "$VAL "
|
|
if [ "x$VAL" != "x$PREFVAL" ] ; then
|
|
echo " NOT MATCH"
|
|
echo " Expected:"; echo $PREFVAL
|
|
echo " Returned:"; echo $VAL
|
|
exit 1
|
|
else
|
|
echo "# pref value check: OK"
|
|
fi
|
|
echo -n "# delPref: "
|
|
$XR_CLI delPref $SESSID "$PREFKEY"|| exit $?
|
|
if [ $DEBUG ]; then
|
|
echo -n "# loadPref: "
|
|
VAL=`$XR_CLI loadPref $SESSID "$PREFKEY"` || echo $?
|
|
else
|
|
echo $VAL
|
|
fi
|
|
}
|
|
|
|
groupPrefTest() {
|
|
PREFKEY="Station frequency"
|
|
PREFVAL="89.5 FM"
|
|
GR="StationPrefs"
|
|
echo -n "# saveGroupPref ($PREFKEY): "
|
|
$XR_CLI saveGroupPref $SESSID "$GR" "$PREFKEY" "$PREFVAL"|| exit $?
|
|
echo -n "# loadGroupPref ($PREFKEY): "
|
|
VAL=`$XR_CLI loadGroupPref $SESSID "$GR" "$PREFKEY"` || \
|
|
{ ERN=$?; echo $VAL; exit $ERN; }
|
|
echo "$VAL "
|
|
if [ "x$VAL" != "x$PREFVAL" ] ; then
|
|
echo " NOT MATCH"
|
|
echo " Expected:"; echo $PREFVAL
|
|
echo " Returned:"; echo $VAL
|
|
exit 1
|
|
else
|
|
echo "# pref value check: OK"
|
|
fi
|
|
echo -n "# saveGroupPref (clear it): "
|
|
$XR_CLI saveGroupPref $SESSID "$GR" "$PREFKEY" ""|| exit $?
|
|
}
|
|
|
|
logout() {
|
|
echo -n "# logout: "
|
|
$XR_CLI logout $SESSID || exit $?
|
|
}
|
|
|
|
searchTest() {
|
|
echo "#XMLRPC search test"
|
|
login
|
|
storeAudioClip
|
|
GUNID=$RGUNID
|
|
searchMetadata
|
|
OK="AC(1): $GUNID | PL(0): "
|
|
if [ "$RES" == "$OK" ]; then
|
|
echo "match: OK"
|
|
else
|
|
echo "results doesn't match ($OK)"; deleteAudioClip; exit 1;
|
|
fi
|
|
browseCategory
|
|
OK="RES(1): Media title testRunner"
|
|
if [ "$RES" == "$OK" ]; then
|
|
echo "match: OK"
|
|
else
|
|
echo "results doesn't match ($OK)"; deleteAudioClip; exit 1;
|
|
fi
|
|
deleteAudioClip
|
|
logout
|
|
echo "#XMLRPC: search: OK."
|
|
echo ""
|
|
}
|
|
|
|
preferenceTest(){
|
|
echo "#XMLRPC preference test"
|
|
login
|
|
prefTest
|
|
groupPrefTest
|
|
logout
|
|
echo "#XMLRPC: preference: OK."
|
|
echo ""
|
|
}
|
|
|
|
playlistTest(){
|
|
echo "#XMLRPC playlists test"
|
|
login
|
|
existsPlaylist
|
|
deletePlaylist
|
|
createPlaylist
|
|
existsPlaylist
|
|
accessPlaylist
|
|
editPlaylist
|
|
accessPlaylist
|
|
exportPlaylist
|
|
importPlaylist
|
|
deletePlaylist
|
|
existsPlaylist
|
|
logout
|
|
echo "#XMLRPC: playlists: OK."
|
|
echo ""
|
|
}
|
|
|
|
webstreamTest(){
|
|
echo "#XMLRPC webstream test"
|
|
login
|
|
storeWebstream; GUNID=$RGUNID
|
|
# GUNID="4e58a66cf6e9f539"
|
|
# downloadMeta
|
|
getAudioClip
|
|
deleteAudioClip
|
|
logout
|
|
echo "#XMLRPC: webstream: OK."
|
|
echo ""
|
|
}
|
|
|
|
storageTest(){
|
|
echo "#XMLRPC: storage test"
|
|
login
|
|
storeAudioClip
|
|
GUNID=$RGUNID
|
|
existsAudioClip
|
|
accessRawAudioData
|
|
downloadRAD
|
|
downloadMeta
|
|
deleteAudioClip
|
|
existsAudioClip
|
|
logout
|
|
echo "#XMLRPC: storage: OK."
|
|
echo ""
|
|
}
|
|
|
|
usage(){
|
|
echo "Usage: $0 [<command>] [args]"
|
|
echo -e "commands:\n test\n existsAudioClip\n accessRawAudioData"
|
|
echo -e " storeAudioClip\n deleteAudioClip\n updateAudioClipMetadata"
|
|
echo -e " getAudioClip\n searchMetadata\n"
|
|
echo -e " preferences\n playlists\n storage\n"
|
|
}
|
|
|
|
if [ "$COMM" = "test" ]; then
|
|
login
|
|
test
|
|
logout
|
|
elif [ "$COMM" = "existsAudioClip" ]; then
|
|
login
|
|
existsAudioClip
|
|
logout
|
|
elif [ "$COMM" = "accessRawAudioData" ]; then
|
|
login
|
|
accessRawAudioData
|
|
logout
|
|
elif [ "$COMM" = "storeAudioClip" ]; then
|
|
login
|
|
storeAudioClip
|
|
logout
|
|
elif [ "$COMM" = "deleteAudioClip" ]; then
|
|
login
|
|
deleteAudioClip
|
|
logout
|
|
elif [ "$COMM" = "updateAudioClipMetadata" ]; then
|
|
login
|
|
updateAudioClipMetadata
|
|
logout
|
|
elif [ "$COMM" = "getAudioClip" ]; then
|
|
login
|
|
getAudioClip
|
|
logout
|
|
elif [ "$COMM" = "searchMetadata" ]; then
|
|
searchTest
|
|
elif [ "$COMM" = "preferences" ]; then
|
|
preferenceTest
|
|
elif [ "$COMM" = "playlists" ]; then
|
|
playlistTest
|
|
elif [ "$COMM" = "webstream" ]; then
|
|
webstreamTest
|
|
elif [ "$COMM" = "storage" ]; then
|
|
storageTest
|
|
elif [ "x$COMM" = "x" ]; then
|
|
storageTest
|
|
playlistTest
|
|
preferenceTest
|
|
searchTest
|
|
elif [ "$COMM" = "help" ]; then
|
|
usage
|
|
else
|
|
echo "Unknown command"
|
|
usage
|
|
fi
|