CC-1024 Update installation/build for webapp-only

CC-1695  	 Remove Campcaster Studio and make install easier

Removed unused files.
Updated version number.
Fixed some path names.
This commit is contained in:
paul.baranowski 2010-10-01 18:17:16 -04:00
parent 9b7756712f
commit 4e73ed7e5a
18 changed files with 6 additions and 3972 deletions

View File

@ -1,531 +0,0 @@
#!/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

View File

@ -1,4 +1,4 @@
<?php
define('CAMPCASTER_VERSION', '1.4.0');
define('CAMPCASTER_VERSION', '1.6.0-alpha');
define('CAMPCASTER_COPYRIGHT_DATE', '2010');
?>

View File

@ -1,56 +0,0 @@
#!/bin/bash
#
#
CAMPCASTER_DIR=/opt/campcaster
CAMPCASTER_BIN=$CAMPCASTER_DIR/bin
CAMPCASTER_ETC=$CAMPCASTER_DIR/etc
CAMPCASTER_LIB=$CAMPCASTER_DIR/lib
PATH=/sbin:/bin:/usr/sbin:/usr/bin:$CAMPCASTER_BIN
LD_LIBRARY_PATH=$CAMPCASTER_LIB:$LD_LIBRARY_PATH
DAEMON=$CAMPCASTER_BIN/campcaster-scheduler
NAME=campcaster-scheduler
DESC="campcaster scheduler"
test -x $DAEMON || exit 0
export PATH
export LD_LIBRARY_PATH
DAEMON_OPTS="-c $CAMPCASTER_ETC/campcaster-scheduler.xml"
set -e
case "$1" in
start)
echo -n "Starting $DESC: "
$DAEMON $DAEMON_OPTS start > /dev/null
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
$DAEMON $DAEMON_OPTS stop > /dev/null
echo "$NAME."
;;
restart|force-reload)
echo -n "Restarting $DESC: "
$DAEMON $DAEMON_OPTS stop > /dev/null
sleep 1
$DAEMON $DAEMON_OPTS start > /dev/null
echo "$NAME."
;;
kill)
echo -n "Killing $DESC: "
$DAEMON $DAEMON_OPTS kill > /dev/null
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload|kill}" >&2
exit 1
;;
esac
exit 0

File diff suppressed because it is too large Load Diff

View File

@ -1,57 +0,0 @@
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<title>Campcaster unit test results</title>
</head>
<body>
<h1>Preface</h1>
This document is part of the
<a href="http://campcaster.sourcefabric.org/">Campcaster</a>
project, Copyright &#169; 2004 <a href="http://www.mdlf.org/">Media
Development Loan Fund</a>, under the GNU
<a href="http://www.gnu.org/licenses/gpl.html">GPL</a>.
<br/>
This is an automatically generated document.
<h1>Scope</h1>
This document contains the generated unit test results for the
<a href="http://campcaster.sourcefabric.org/">Campcaster</a> project.
<h1>Summary</h1>
<table>
<tr>
<td><b>Total number of tests:</b></td>
<td><xsl:value-of select="count(//Test | //FailedTest)"/></td>
</tr>
<tr>
<td><b>Tests passed:</b></td>
<td><xsl:value-of select="count(//SuccessfulTests/Test)"/></td>
</tr>
<tr>
<td><b>Tests failed:</b></td>
<td><xsl:value-of select="count(//FailedTests/FailedTest)"/></td>
</tr>
</table>
<h1>Tests</h1>
<table>
<tr>
<th>test name</th>
<th>test status</th>
</tr>
<xsl:for-each select="//Test | //FailedTest">
<xsl:sort select="Name"/>
<tr>
<td><xsl:value-of select="Name"/></td>
<xsl:if test="ancestor::FailedTests"><td bgcolor="red">failed</td></xsl:if>
<xsl:if test="ancestor::SuccessfulTests"><td bgcolor="lightblue">passed</td></xsl:if>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

View File

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="testResultToHtml.xsl"?>
<!DOCTYPE TestResults [
<!ENTITY authenticationResults SYSTEM "../src/modules/authentication/doc/testResults.xml" >
<!ENTITY coreResults SYSTEM "../src/modules/core/doc/testResults.xml" >
<!ENTITY dbResults SYSTEM "../src/modules/db/doc/testResults.xml" >
<!ENTITY eventSchedulerResults SYSTEM "../src/modules/eventScheduler/doc/testResults.xml" >
<!ENTITY gstreamerElementsResults SYSTEM "../src/modules/gstreamerElements/doc/testResults.xml" >
<!ENTITY schedulerClientResults SYSTEM "../src/modules/schedulerClient/doc/testResults.xml" >
<!ENTITY storageClientResults SYSTEM "../src/modules/storageClient/doc/testResults.xml" >
]>
<TestResults>
&authenticationResults;
&coreResults;
&dbResults;
&eventSchedulerResults;
&gstreamerElementsResults;
<!-- disabled &playlistExecutorResults; -->
&schedulerClientResults;
&storageClientResults;
<!-- disabled &schedulerResults; -->
</TestResults>

File diff suppressed because it is too large Load Diff

View File

@ -3,8 +3,8 @@ if (strpos($_SERVER['PHP_SELF'], '~') !== false) {
list(, $user, ) = explode('/', $_SERVER['PHP_SELF']);
$base = "/$user/campcaster";
} else {
$base = "/campcaster";
$base = "/campcaster";
}
header("LOCATION: $base/htmlUI/var/html/ui_browser.php");
header("LOCATION: $base/htmlUI/ui_browser.php");
?>

View File

@ -1,3 +0,0 @@
<?php
header('LOCATION: htmlUI/var/html/ui_browser.php');
?>

View File

@ -1,3 +0,0 @@
<?php
header('LOCATION: var/html/ui_browser.php');
?>

View File

@ -9,7 +9,7 @@ define('UI_ERROR', TRUE);
// Note: this needs to be a variable, not a define because other
// parts of the application do not read in this file.
$WHITE_SCREEN_OF_DEATH = FALSE;
$WHITE_SCREEN_OF_DEATH = false;
if (UI_DEBUG) {
error_reporting(E_ALL);
@ -24,8 +24,8 @@ define('UI_UPLOAD_LANGID', UI_DEFAULT_LANGID);
define('UI_TIMEZONEOFFSET', date('Z'));
// Basic scripts
define('UI_HANDLER', 'ui_handler.php');
define('UI_BROWSER', 'ui_browser.php');
define('UI_HANDLER', 'htmlUI/ui_handler.php');
define('UI_BROWSER', 'htmlUI/ui_browser.php');
// HTML Form stuff
define('UI_STANDARD_FORM_METHOD', 'POST');

View File

@ -1,83 +0,0 @@
#!/bin/bash
#-------------------------------------------------------------------------------
# Copyright (c) 2010 Sourcefabric O.P.S.
#
# This file is part of the Campcaster project.
# http://campcaster.sourcefabric.org/
# To report bugs, send an e-mail to bugs@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
#
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Run this to set up the build system: configure, makefiles, etc.
# (based on the version in enlightenment's cvs)
#-------------------------------------------------------------------------------
package="Campcaster"
# assume we're in $basedir/bin
reldir=`dirname $0`/..
basedir=`cd $reldir; pwd;`
test -z "$basedir" && basedir=.
bindir=$basedir/bin
etcdir=$basedir/etc
tmpdir=$basedir/tmp
cd "$tmpdir"
DIE=0
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have autoconf installed to compile $package."
echo "Download the appropriate package for your distribution,"
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
DIE=1
}
(automake --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have automake installed to compile $package."
echo "Download the appropriate package for your distribution,"
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
DIE=1
}
if test "$DIE" -eq 1; then
exit 1
fi
if test -z "$*"; then
echo "I am going to run ./configure with no arguments - if you wish "
echo "to pass any to it, please specify them on the $0 command line."
fi
echo "Generating configuration files for $package, please wait...."
configure_ac=${etcdir}/configure.ac
configure=${tmpdir}/configure
# copy over install-sh, as it's going to be missed by autoconf
cp -f ${bindir}/install-sh ${tmpdir}
cp -f ${configure_ac} ${tmpdir}
echo " aclocal"
aclocal
echo " autoconf -I ${tmpdir} -o ${configure} ${configure_ac}"
autoconf -I ${tmpdir} -o ${configure} ${configure_ac}

View File

@ -1,211 +0,0 @@
#!/bin/bash
#-------------------------------------------------------------------------------
# Author : $Author: fgerlits $
# Version : $Revision: 2292 $
#-------------------------------------------------------------------------------
# This script creates a distribution tarball for Campcaster network hub.
# (campcaster-hub-<version>.tar.bz2)
#
# Invoke as:
# ./bin/createHubTarball.sh -v <version.number>
#
# To get usage help, try the -h option
#
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Determine directories, files
#-------------------------------------------------------------------------------
#reldir=`dirname $0`/..
reldir=`pwd`
basedir=`cd $reldir; pwd;`
bindir=$basedir/bin
etcdir=$basedir/etc
docdir=$basedir/doc
srcdir=$basedir/src
tmpdir=$basedir/tmp
toolsdir=$srcdir/tools
modules_dir=$srcdir/modules
products_dir=$srcdir/products
usrdir=`cd $basedir/usr; pwd;`
#-------------------------------------------------------------------------------
# Print the usage information for this script.
#-------------------------------------------------------------------------------
printUsage()
{
echo "Campcaster network hub tar package creator.";
echo "parameters";
echo "";
echo " -d, --directory Place the tarball in the specified directory.";
echo " [default: current directory]";
echo " -v, --version The version number of the created package.";
echo " -h, --help Print this message and exit.";
echo "";
}
#-------------------------------------------------------------------------------
# Process command line parameters
#-------------------------------------------------------------------------------
CMD=${0##*/}
opts=$(getopt -o d:v:h -l lspath:,output:,version:,help -n $CMD -- "$@") || exit 1
eval set -- "$opts"
while true; do
case "$1" in
-d|--directory)
directory=$2;
shift; shift;;
-v|--version)
version=$2;
shift; shift;;
-h|--help)
printUsage;
exit 0;;
--)
shift;
break;;
*)
echo "Unrecognized option $1.";
printUsage;
exit 1;
esac
done
if [ "x$directory" == "x" ]; then
directory=`pwd`;
fi
if [ "x$version" == "x" ]; then
echo "Required parameter version not specified.";
printUsage;
exit 1;
fi
echo "Creating Campcaster network hub tar.gz package.";
echo "";
echo "Using the following installation parameters:";
echo "";
echo " LS directory: $lspath";
echo " output directory: $directory";
echo ""
#-------------------------------------------------------------------------------
# Check if there are generated files, and bail out if so
#-------------------------------------------------------------------------------
if [ -f $basedir/Makefile ]; then
echo "ERROR: make sure to run this script on a freshly checked-out copy";
echo " of Campcaster, with NO generated files!";
exit 1;
fi
#-------------------------------------------------------------------------------
# More definitions
#-------------------------------------------------------------------------------
tarball=$directory/campcaster-hub-$version.tar.bz2
tmpreldir=campcaster-hub-$version
ls_tmpdir=$tmpdir/$tmpreldir
src_tmpdir=$ls_tmpdir/src
tools_tmpdir=$src_tmpdir/tools
modules_tmpdir=$src_tmpdir/modules
products_tmpdir=$src_tmpdir/products
bin_tmpdir=$ls_tmpdir/bin
doc_tmpdir=$ls_tmpdir/doc
etc_tmpdir=$ls_tmpdir/etc
tmp_tmpdir=$ls_tmpdir/tmp
#-------------------------------------------------------------------------------
# Function to check for the existence of an executable on the PATH
#
# @param $1 the name of the exectuable
# @return 0 if the executable exists on the PATH, non-0 otherwise
#-------------------------------------------------------------------------------
check_exe() {
if [ -x "`which $1 2> /dev/null`" ]; then
#echo "Executable $1 found...";
return 0;
else
echo "Executable $1 not found...";
return 1;
fi
}
COMMENT='
#-------------------------------------------------------------------------------
# Check to see if this script is being run as root
#-------------------------------------------------------------------------------
if [ `whoami` != "root" ]; then
echo "Please run this script as root.";
exit ;
fi
'
#-------------------------------------------------------------------------------
# Check for required tools
#-------------------------------------------------------------------------------
echo "Checking for required tools..."
check_exe "tar" || exit 1;
check_exe "bzip2" || exit 1;
#-------------------------------------------------------------------------------
# Create the directories again
#-------------------------------------------------------------------------------
echo "Creating tmp directories and copying files ..."
mkdir -p $ls_tmpdir
mkdir -p $src_tmpdir
mkdir -p $modules_tmpdir
mkdir -p $tools_tmpdir
mkdir -p $bin_tmpdir
mkdir -p $etc_tmpdir/apache
#-------------------------------------------------------------------------------
# Copy the modules and tools
#-------------------------------------------------------------------------------
#cp -pPR $modules_dir/* $modules_tmpdir
for it in alib getid3 storageServer storageAdmin; do
cp -pPR $modules_dir/$it $modules_tmpdir
done
for it in pear; do
cp -pPR $toolsdir/$it $tools_tmpdir
done
for it in preInstall.sh hubSetup.sh; do
cp -pPR $bindir/$it $bin_tmpdir
done
cp -pPR $etcdir/apache/* $etc_tmpdir/apache
for it in pg_hba.conf; do
cp -pPR $etcdir/$it $etc_tmpdir
done
#-------------------------------------------------------------------------------
# Copy additional files
#-------------------------------------------------------------------------------
#cp -pPR $bindir $ls_tmpdir
#cp -pPR $etcdir $ls_tmpdir
cp -pPR README INSTALL CREDITS configure $ls_tmpdir
#-------------------------------------------------------------------------------
# Get rid of the remnants of the subversion system
#-------------------------------------------------------------------------------
# Paul Baranowski: you dont need to do this when you export from SVN.
#rm -rf `find $ls_tmpdir -name .svn -type d`
#-------------------------------------------------------------------------------
# Create the tarball
#-------------------------------------------------------------------------------
echo "Creating $tarball ...";
cd $tmpdir
tar cjf $tarball $tmpreldir
cd $basedir
rm -rf $ls_tmpdir
#-------------------------------------------------------------------------------
# Say goodbye
#-------------------------------------------------------------------------------
echo "Done."

View File

@ -1,269 +0,0 @@
#!/bin/bash
#-------------------------------------------------------------------------------
# Copyright (c) 2010 Sourcefabric O.P.S.
#
# This file is part of the Campcaster project.
# http://campcaster.sourcefabric.org/
# To report bugs, send an e-mail to bugs@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
#
#-------------------------------------------------------------------------------
# This script creates a distribution tarball for Campcaster.
# Creates two tarballs:
# campcaster-<version>.tar.bz2 - the Campcaster source files
# campcaster-libraries-<version>.tar.bz2 - dependent libraries
#
# Invoke as:
# ./bin/dist.sh -v <version.number>
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Determine directories, files
#-------------------------------------------------------------------------------
reldir=`dirname $0`/..
basedir=`cd $reldir; pwd;`
bindir=$basedir/bin
etcdir=$basedir/etc
docdir=$basedir/doc
srcdir=$basedir/src
tmpdir=$basedir/tmp
toolsdir=$srcdir/tools
modules_dir=$srcdir/modules
products_dir=$srcdir/products
usrdir=`cd $basedir/usr; pwd;`
#-------------------------------------------------------------------------------
# Print the usage information for this script.
#-------------------------------------------------------------------------------
printUsage()
{
echo "Campcaster install script.";
echo "parameters";
echo "";
echo " -d, --directory Place the tarballs in the specified directory.";
echo " [default: the parent of the current directory]";
echo " -h, --help Print this message and exit.";
echo " -v, --version The version number of the created packages.";
echo "";
}
#-------------------------------------------------------------------------------
# Process command line parameters
#-------------------------------------------------------------------------------
CMD=${0##*/}
opts=$(getopt -o d:hv: -l directory:,help,version: -n $CMD -- "$@") || exit 1
eval set -- "$opts"
while true; do
case "$1" in
-d|--directory)
directory=$2;
shift; shift;;
-h|--help)
printUsage;
exit 0;;
-v|--version)
version=$2;
shift; shift;;
--)
shift;
break;;
*)
echo "Unrecognized option $1.";
printUsage;
exit 1;
esac
done
if [ "x$version" == "x" ]; then
echo "Required parameter version not specified.";
printUsage;
exit 1;
fi
if [ "x$directory" == "x" ]; then
directory=`pwd`/..;
fi
d=`cd $directory; pwd`
directory=$d
echo "Creating tarballs for Campcaster.";
echo "";
echo "Using the following parameters:";
echo "";
echo " output directory: $directory";
echo " package version number: $version";
echo ""
#-------------------------------------------------------------------------------
# Check if there are generated files, and bail out if so
#-------------------------------------------------------------------------------
if [ -f $basedir/Makefile ]; then
echo "ERROR: make sure to run this script on a freshly checked-out copy";
echo " of Campcaster, with NO generated files!";
exit 1;
fi
#-------------------------------------------------------------------------------
# More definitions
#-------------------------------------------------------------------------------
tarball=$directory/campcaster-$version.tar.bz2
tarball_libs=$directory/campcaster-libraries-$version.tar.bz2
ls_tmpdir=$tmpdir/campcaster-$version
src_tmpdir=$ls_tmpdir/src
tools_tmpdir=$src_tmpdir/tools
modules_tmpdir=$src_tmpdir/modules
products_tmpdir=$src_tmpdir/products
doc_tmpdir=$ls_tmpdir/doc
etc_tmpdir=$ls_tmpdir/etc
tmp_tmpdir=$ls_tmpdir/tmp
libodbcxx_dir=$toolsdir/libodbc++
libodbcxx_version=libodbc++-0.2.5
libodbcxx_tmpdir=$tools_tmpdir/libodbc++
xmlrpcxx_dir=$toolsdir/xmlrpc++
xmlrpcxx_version=xmlrpc++-20040713
xmlrpcxx_tmpdir=$tools_tmpdir/xmlrpc++
taglib_dir=$toolsdir/taglib
taglib_version=taglib-1.5
taglib_tmpdir=$tools_tmpdir/taglib
pear_dir=$toolsdir/pear
pear_tmpdir=$tools_tmpdir/pear
#-------------------------------------------------------------------------------
# Create the sources tarball first
#-------------------------------------------------------------------------------
echo "Creating $tarball...";
#-------------------------------------------------------------------------------
# Create the directories again
#-------------------------------------------------------------------------------
mkdir -p $ls_tmpdir
mkdir -p $ls_tmpdir/usr
mkdir -p $tmp_tmpdir
mkdir -p $src_tmpdir
mkdir -p $modules_tmpdir
mkdir -p $products_tmpdir
#-------------------------------------------------------------------------------
# Copy the modules and products
#-------------------------------------------------------------------------------
cp -pPR $modules_dir/* $modules_tmpdir
cp -pPR $products_dir/* $products_tmpdir
#-------------------------------------------------------------------------------
# Copy additional files
#-------------------------------------------------------------------------------
cp -pPR $bindir $ls_tmpdir
cp -pPR $docdir $ls_tmpdir
cp -pPR $etcdir $ls_tmpdir
cp -pPR README INSTALL CREDITS configure $ls_tmpdir
#-------------------------------------------------------------------------------
# Get rid of the remnants of the subversion system
#-------------------------------------------------------------------------------
rm -rf `find $ls_tmpdir -name .svn -type d`
#-------------------------------------------------------------------------------
# Create the main configure script
#-------------------------------------------------------------------------------
cd $tmpdir/campcaster-$version
./bin/autogen.sh
cd $basedir
#-------------------------------------------------------------------------------
# Create the tarball
#-------------------------------------------------------------------------------
cd $tmpdir
tar cfj $tarball campcaster-$version
cd $basedir
#-------------------------------------------------------------------------------
# Create the libraries tarball second
#-------------------------------------------------------------------------------
echo "Creating $tarball_libs...";
#-------------------------------------------------------------------------------
# Create temprorary directory structure again
#-------------------------------------------------------------------------------
rm -rf $ls_tmpdir
mkdir -p $ls_tmpdir
mkdir -p $tools_tmpdir
#-------------------------------------------------------------------------------
# Copy the tools sources
#-------------------------------------------------------------------------------
mkdir -p $cxxunit_tmpdir
cp -pPR $cxxunit_dir/$cxxunit_version $cxxunit_tmpdir
mkdir -p $libodbcxx_tmpdir
cp -pPR $libodbcxx_dir/$libodbcxx_version $libodbcxx_tmpdir
mkdir -p $xmlrpcxx_tmpdir
cp -pPR $xmlrpcxx_dir/$xmlrpcxx_version $xmlrpcxx_tmpdir
mkdir -p $taglib_tmpdir
cp -pPR $taglib_dir/$taglib_version $taglib_tmpdir
mkdir -p $pear_tmpdir
cp -pPR $pear_dir/* $pear_tmpdir
#-------------------------------------------------------------------------------
# Get rid of the remnants of the subversion system
#-------------------------------------------------------------------------------
rm -rf `find $ls_tmpdir -name .svn -type d`
#-------------------------------------------------------------------------------
# Create the libraries tarball
#-------------------------------------------------------------------------------
cd $tmpdir
tar cfj $tarball_libs campcaster-$version
cd $basedir
#-------------------------------------------------------------------------------
# Clean up
#-------------------------------------------------------------------------------
rm -rf $ls_tmpdir
#-------------------------------------------------------------------------------
# We're done
#-------------------------------------------------------------------------------
echo "Done."

View File

@ -1,87 +0,0 @@
#!/bin/bash
#-------------------------------------------------------------------------------
# Copyright (c) 2010 Sourcefabric O.P.S.
#
# This file is part of the Campcaster project.
# http://campcaster.sourcefabric.org/
# To report bugs, send an e-mail to bugs@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
#
#-------------------------------------------------------------------------------
# This script generates code coverage data for all modules
#-------------------------------------------------------------------------------
module="Campcaster"
reldir=`dirname $0`/..
basedir=`cd $reldir; pwd;`
bindir=$basedir/bin
docdir=$basedir/doc
srcdir=$basedir/src
tmpdir=$basedir/tmp
modules_dir=$srcdir/modules
products_dir=$srcdir/products
usrdir=`cd $basedir/usr; pwd;`
coverage_report_dir=$docdir/coverage
core_coverage_file=$modules_dir/core/tmp/coverage.info
authentication_coverage_file=$modules_dir/authentication/tmp/coverage.info
db_coverage_file=$modules_dir/db/tmp/coverage.info
storageClient_coverage_file=$modules_dir/storageClient/tmp/coverage.info
eventScheduler_coverage_file=$modules_dir/eventScheduler/tmp/coverage.info
schedulerClient_coverage_file=$modules_dir/schedulerClient/tmp/coverage.info
playlistExecutor_coverage_file=$modules_dir/playlistExecutor/tmp/coverage.info
scheduler_coverage_file=$products_dir/scheduler/tmp/coverage.info
coverage_file=$tmpdir/coverage.info
lcov=$usrdir/bin/lcov
genhtml=$usrdir/bin/genhtml
#-------------------------------------------------------------------------------
# Execute the coverage tests one by one
#-------------------------------------------------------------------------------
$modules_dir/core/bin/gen_coverage_data.sh
$modules_dir/authentication/bin/gen_coverage_data.sh
$modules_dir/db/bin/gen_coverage_data.sh
$modules_dir/storageClient/bin/gen_coverage_data.sh
$modules_dir/eventScheduler/bin/gen_coverage_data.sh
$modules_dir/schedulerClient/bin/gen_coverage_data.sh
$modules_dir/playlistExecutor/bin/gen_coverage_data.sh
$products_dir/scheduler/bin/gen_coverage_data.sh
#-------------------------------------------------------------------------------
# Gather all the coverage information into one file
# remove references to the tmp directories, and replace them with the module
# directories themselves. this way the source files are found easlity by lcov
#-------------------------------------------------------------------------------
echo "" > $coverage_file
cat $core_coverage_file | sed -e "s/core\/tmp\//core\//g" >> $coverage_file
cat $authentication_coverage_file | sed -e "s/authentication\/tmp\//authentication\//g" >> $coverage_file
cat $db_coverage_file | sed -e "s/db\/tmp\//db\//g" >> $coverage_file
cat $storageClient_coverage_file | sed -e "s/storageClient\/tmp\//storageClient\//g" >> $coverage_file
cat $eventScheduler_coverage_file | sed -e "s/eventScheduler\/tmp\//eventScheduler\//g" >> $coverage_file
cat $schedulerClient_coverage_file | sed -e "s/schedulerClient\/tmp\//schedulerClient\//g" >> $coverage_file
cat $playlistExecutor_coverage_file | sed -e "s/playlistExecutor\/tmp\//playlistExecutor\//g" >> $coverage_file
cat $scheduler_coverage_file | sed -e "s/scheduler\/tmp\//scheduler\//g" >> $coverage_file
rm -rf $coverage_report_dir
mkdir -p $coverage_report_dir
$genhtml -t "$module" -o $coverage_report_dir $coverage_file

View File

@ -1,10 +0,0 @@
<?php
/*------------------------------------------------------------------------------
* This script returns storage XMLRPC root URL
*----------------------------------------------------------------------------*/
header("Content-type: text/plain");
require("../conf.php");
echo "http://{$CC_CONFIG['storageUrlHost']}:{$CC_CONFIG['storageUrlPort']}".
"{$CC_CONFIG['storageUrlPath']}/{$CC_CONFIG['storageXMLRPC']}";
?>

View File

@ -20,11 +20,6 @@
# along with Campcaster; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#
# Author : $Author$
# Version : $Revision$
# Location : $URL$
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Run this script to install PEAR packages needed by Campcaster locally
# into the Campcaster usr environment.

View File

@ -1,323 +0,0 @@
#!/bin/bash
# install - install a program, script, or datafile
scriptversion=2005-02-02.21
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
chmodcmd="$chmodprog 0755"
chowncmd=
chgrpcmd=
stripcmd=
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=
dst=
dir_arg=
dstarg=
no_target_directory=
usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES...
In the 1st form, copy SRCFILE to DSTFILE.
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.
Options:
-c (ignored)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
-s $stripprog installed files.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
--help display this help and exit.
--version display version info and exit.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
"
while test -n "$1"; do
case $1 in
-c) shift
continue;;
-d) dir_arg=true
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
--help) echo "$usage"; exit $?;;
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-s) stripcmd=$stripprog
shift
continue;;
-t) dstarg=$2
shift
shift
continue;;
-T) no_target_directory=true
shift
continue;;
--version) echo "$0 $scriptversion"; exit $?;;
*) # When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
test -n "$dir_arg$dstarg" && break
# Otherwise, the last argument is the destination. Remove it from $@.
for arg
do
if test -n "$dstarg"; then
# $@ is not empty: it contains at least $arg.
set fnord "$@" "$dstarg"
shift # fnord
fi
shift # arg
dstarg=$arg
done
break;;
esac
done
if test -z "$1"; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
fi
# It's OK to call `install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
for src
do
# Protect names starting with `-'.
case $src in
-*) src=./$src ;;
esac
if test -n "$dir_arg"; then
dst=$src
src=
if test -d "$dst"; then
mkdircmd=:
chmodcmd=
else
mkdircmd=$mkdirprog
fi
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
if test -z "$dstarg"; then
echo "$0: no destination specified." >&2
exit 1
fi
dst=$dstarg
# Protect names starting with `-'.
case $dst in
-*) dst=./$dst ;;
esac
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
if test -n "$no_target_directory"; then
echo "$0: $dstarg: Is a directory" >&2
exit 1
fi
dst=$dst/`basename "$src"`
fi
fi
# This sed command emulates the dirname command.
dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
# Make sure that the destination directory exists.
# Skip lots of stat calls in the usual case.
if test ! -d "$dstdir"; then
defaultIFS='
'
IFS="${IFS-$defaultIFS}"
oIFS=$IFS
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
shift
IFS=$oIFS
pathcomp=
while test $# -ne 0 ; do
pathcomp=$pathcomp$1
shift
if test ! -d "$pathcomp"; then
$mkdirprog "$pathcomp"
# mkdir can fail with a `File exist' error in case several
# install-sh are creating the directory concurrently. This
# is OK.
test -d "$pathcomp" || exit
fi
pathcomp=$pathcomp/
done
fi
if test -n "$dir_arg"; then
$doit $mkdircmd "$dst" \
&& { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
&& { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
else
dstfile=`basename "$dst"`
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
trap '(exit $?); exit' 1 2 13 15
# Copy the file name to the temp name.
$doit $cpprog "$src" "$dsttmp" &&
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
# Now rename the file to the real destination.
{ $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
|| {
# The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
# Now remove or move aside any old file at destination location.
# We try this two ways since rm can't unlink itself on some
# systems and the destination file might be busy for other
# reasons. In this case, the final cleanup might fail but the new
# file should still install successfully.
{
if test -f "$dstdir/$dstfile"; then
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
|| $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
|| {
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
(exit 1); exit 1
}
else
:
fi
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
}
}
fi || { (exit 1); exit 1; }
done
# The final little trick to "correctly" pass the exit status to the exit trap.
{
(exit 0); exit 0
}
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End: