Merge branch 'master' of dev.sourcefabric.org:campcaster
This commit is contained in:
commit
eff63827d7
|
@ -316,22 +316,6 @@ echo "Setting up storageServer..."
|
|||
make -C $modules_dir/storageServer storage || exit 1
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Setup the database tables for the scheduler
|
||||
#-------------------------------------------------------------------------------
|
||||
echo "Setting up database tables for the scheduler..."
|
||||
|
||||
make -C $products_dir/scheduler init || exit 1
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Add "scheduler" user
|
||||
#-------------------------------------------------------------------------------
|
||||
echo "Adding the 'scheduler' user..."
|
||||
|
||||
php $modules_dir/storageServer/var/install/campcaster-user.php --addupdate scheduler $scheduler_storage_pass
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Setup directory permissions
|
||||
#-------------------------------------------------------------------------------
|
||||
|
|
|
@ -311,17 +311,18 @@ class uiBase
|
|||
*/
|
||||
public function loadStationPrefs(&$mask, $reload=FALSE)
|
||||
{
|
||||
global $CC_CONFIG;
|
||||
if (!is_array($this->STATIONPREFS) || ($reload === TRUE) ) {
|
||||
$this->STATIONPREFS = array();
|
||||
foreach ($mask as $key => $val) {
|
||||
if (isset($val['isPref']) && $val['isPref']) {
|
||||
$setting = $this->gb->loadGroupPref(NULL, 'StationPrefs', $val['element']);
|
||||
$setting = $this->gb->loadGroupPref($CC_CONFIG['StationPrefsGr'], $val['element']);
|
||||
if (is_string($setting)) {
|
||||
$this->STATIONPREFS[$val['element']] = $setting;
|
||||
} elseif ($val['required']) {
|
||||
// set default values on first login
|
||||
$default = isset($val['default'])?$val['default']:null;
|
||||
$this->gb->saveGroupPref($this->sessid, 'StationPrefs', $val['element'], $default);
|
||||
$this->gb->saveGroupPref($this->sessid, $CC_CONFIG['StationPrefsGr'], $val['element'], $default);
|
||||
$this->STATIONPREFS[$val['element']] = $default;
|
||||
}
|
||||
}
|
||||
|
@ -529,24 +530,24 @@ class uiBase
|
|||
public function getMetaInfo($id)
|
||||
{
|
||||
$type = strtolower(GreenBox::getFileType($id));
|
||||
|
||||
|
||||
if($type == 'playlist') {
|
||||
require_once("../../../storageServer/var/Playlist.php");
|
||||
|
||||
|
||||
$playList = new Playlist(GreenBox::GunidFromId($id));
|
||||
$playListData = $playList->export();
|
||||
|
||||
|
||||
for ($i = 1; $i < count($playListData); $i++) {
|
||||
|
||||
$entry = StoredFile::RecallByGunid($playListData["".$i]["gunid"]);
|
||||
|
||||
$entry = StoredFile::RecallByGunid($playListData["".$i]["gunid"]);
|
||||
$playListEntries[] = $entry->getName();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
$_SESSION['mdata'] = $playListEntries;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
$data = array('id' => $id,
|
||||
'gunid' => BasicStor::GunidFromId($id),
|
||||
'title' => $this->getMetadataValue($id, UI_MDATA_KEY_TITLE),
|
||||
|
|
|
@ -296,10 +296,11 @@ class uiBrowser extends uiBase {
|
|||
|
||||
function changeStationPrefs(&$mask)
|
||||
{
|
||||
global $CC_CONFIG;
|
||||
$form = new HTML_QuickForm('changeStationPrefs', UI_STANDARD_FORM_METHOD, UI_HANDLER);
|
||||
foreach($mask as $key => $val) {
|
||||
$element = isset($val['element']) ? $val['element'] : null;
|
||||
$p = $this->gb->loadGroupPref($this->sessid, 'StationPrefs', $element);
|
||||
$p = $this->gb->loadGroupPref($CC_CONFIG['StationPrefsGr'], $element);
|
||||
if (is_string($p)) {
|
||||
$mask[$key]['default'] = $p;
|
||||
}
|
||||
|
|
|
@ -696,6 +696,7 @@ class uiHandler extends uiBase {
|
|||
*/
|
||||
function changeStationPrefs($formdata, $mask)
|
||||
{
|
||||
global $CC_CONFIG;
|
||||
$this->redirUrl = UI_BROWSER;
|
||||
|
||||
if ($this->_validateForm($formdata, $mask) == FALSE) {
|
||||
|
@ -705,18 +706,18 @@ class uiHandler extends uiBase {
|
|||
foreach ($mask as $key => $val) {
|
||||
if (isset($val['isPref']) && $val['isPref']) {
|
||||
if (!empty($formdata[$val['element']])) {
|
||||
$result = $this->gb->saveGroupPref($this->sessid, 'StationPrefs', $val['element'], $formdata[$val['element']]);
|
||||
$result = $this->gb->saveGroupPref($this->sessid, $CC_CONFIG['StationPrefsGr'], $val['element'], $formdata[$val['element']]);
|
||||
if (PEAR::isError($result))
|
||||
$this->_retMsg('Error while saving settings.');
|
||||
} else {
|
||||
$this->gb->delGroupPref($this->sessid, 'StationPrefs', $val['element']);
|
||||
$this->gb->delGroupPref($this->sessid, $CC_CONFIG['StationPrefsGr'], $val['element']);
|
||||
}
|
||||
}
|
||||
if (isset($val['type'])
|
||||
&& ($val['type'] == 'file')
|
||||
&& ($val['element'] == "stationlogo")
|
||||
&& !empty($formdata[$val['element']]['name'])) {
|
||||
$stationLogoPath = $this->gb->loadGroupPref($this->sessid, 'StationPrefs', 'stationLogoPath');
|
||||
$stationLogoPath = $this->gb->loadGroupPref($CC_CONFIG['StationPrefsGr'], 'stationLogoPath');
|
||||
$filePath = $formdata[$val['element']]['tmp_name'];
|
||||
if (function_exists("getimagesize")) {
|
||||
$size = @getimagesize($filePath);
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<?php
|
||||
class uiTwitter {
|
||||
private $Base;
|
||||
|
||||
|
||||
private $settings = array(
|
||||
'bitly-login' => 'campcaster',
|
||||
'bitly-apikey' => 'R_2f812152bfc21035468350273ec8ff43'
|
||||
'bitly-apikey' => 'R_2f812152bfc21035468350273ec8ff43'
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
* Time in sec
|
||||
*
|
||||
|
@ -19,7 +19,7 @@ class uiTwitter {
|
|||
$this->Base =& $uiBase;
|
||||
$this->loadSettings();
|
||||
}
|
||||
|
||||
|
||||
private static function getSettingFormMask()
|
||||
{
|
||||
$formmask = array(
|
||||
|
@ -182,7 +182,7 @@ class uiTwitter {
|
|||
'label' => 'Provider',
|
||||
'options' => array(
|
||||
'bit.ly' => 'bit.ly',
|
||||
'tinyurl.com' => 'tinyurl.com',
|
||||
'tinyurl.com' => 'tinyurl.com',
|
||||
),
|
||||
'isPref' => true
|
||||
),
|
||||
|
@ -209,29 +209,30 @@ class uiTwitter {
|
|||
'label' => 'Submit',
|
||||
)
|
||||
);
|
||||
return $formmask;
|
||||
return $formmask;
|
||||
}
|
||||
|
||||
|
||||
private function loadSettings()
|
||||
{
|
||||
global $CC_CONFIG;
|
||||
$mask = uiTwitter::getSettingFormMask();
|
||||
|
||||
|
||||
foreach($mask as $key => $val) {
|
||||
if (isset($val['isPref']) && $val['isPref']) {
|
||||
$element = preg_replace('/^twitter-/', '', $val['element'], 1);
|
||||
$p = $this->Base->gb->loadGroupPref($this->Base->sessid, 'StationPrefs', $val['element']);
|
||||
$p = $this->Base->gb->loadGroupPref($CC_CONFIG['StationPrefsGr'], $val['element']);
|
||||
if (is_string($p)) {
|
||||
$this->settings[$element] = $p;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function getSettingsForm()
|
||||
{
|
||||
$mask = uiTwitter::getSettingFormMask();
|
||||
$form = new HTML_QuickForm('twitter', UI_STANDARD_FORM_METHOD, UI_HANDLER);#
|
||||
|
||||
|
||||
foreach($mask as $key => $val) {
|
||||
if (isset($val['isPref']) && $val['isPref'] && !$val['hiddenPref']) {
|
||||
$element = preg_replace('/^twitter-/', '', $val['element']);
|
||||
|
@ -246,48 +247,49 @@ class uiTwitter {
|
|||
$form->accept($renderer);
|
||||
return $renderer->toArray();
|
||||
}
|
||||
|
||||
|
||||
public function saveSettings()
|
||||
{
|
||||
global $CC_CONFIG;
|
||||
if ($this->Base->_validateForm($_REQUEST, uiTwitter::getSettingFormMask()) !== TRUE) {
|
||||
$this->Base->_retMsg('An error has occured on validating the form.');
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
$mask = uiTwitter::getSettingFormMask();
|
||||
$form = new HTML_QuickForm('twitter', UI_STANDARD_FORM_METHOD, UI_HANDLER);
|
||||
uiBase::parseArrayToForm($form, $mask);
|
||||
$formdata = $form->exportValues();
|
||||
|
||||
|
||||
foreach ($mask as $key => $val) {
|
||||
if (isset($val['isPref']) && $val['isPref']) {
|
||||
if (!empty($formdata[$val['element']])) {
|
||||
$result = $this->Base->gb->saveGroupPref($this->Base->sessid, 'StationPrefs', $val['element'], $formdata[$val['element']]);
|
||||
$result = $this->Base->gb->saveGroupPref($this->Base->sessid, $CC_CONFIG['StationPrefsGr'], $val['element'], $formdata[$val['element']]);
|
||||
if (PEAR::isError($result))
|
||||
$this->Base->_retMsg('Error while saving twitter settings.');
|
||||
} elseif (!$val['hiddenPref']) {
|
||||
$this->Base->gb->delGroupPref($this->Base->sessid, 'StationPrefs', $val['element']);
|
||||
$this->Base->gb->delGroupPref($this->Base->sessid, $CC_CONFIG['StationPrefsGr'], $val['element']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$this->Base->_retMsg('Twitter settings saved.');
|
||||
}
|
||||
|
||||
|
||||
public function getFeed($p_useSampledata = false)
|
||||
{
|
||||
{
|
||||
if ($p_useSampledata) {
|
||||
$whatsplaying = array(
|
||||
"tracktitle" => "Gimme Shelter",
|
||||
"trackartist" => "The Rolling Stones",
|
||||
"playlisttitle" => "The Blues Hour"
|
||||
);
|
||||
);
|
||||
} else {
|
||||
$whatsplaying = $this->getWhatsplaying($this->settings['offset']);
|
||||
}
|
||||
|
||||
|
||||
if (!$whatsplaying) {
|
||||
return;
|
||||
return;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
@ -313,35 +315,35 @@ class uiTwitter {
|
|||
if ($this->settings['has_trackartist']) { $tweetbody[] = $whatsplaying['trackartist']; }
|
||||
if ($this->settings['has_playlisttitle']) { $tweetbody[] = $whatsplaying['playlisttitle']; }
|
||||
if ($this->settings['has_stationname']) { $tweetbody[] = $this->Base->STATIONPREFS['stationName']; }
|
||||
|
||||
|
||||
$tweetbody = implode (". ",$tweetbody);
|
||||
|
||||
|
||||
// chop body to fit if necessary
|
||||
if ((strlen($tweetprefix) + strlen($tweetbody) + strlen($tweetsuffix)) > 140) {
|
||||
$tweetbody = substr($tweetbody, 0, (140 - (strlen($tweetprefix) + strlen($tweetsuffix) + 3))) . "...";
|
||||
}
|
||||
|
||||
|
||||
$tweet = $tweetprefix . $tweetbody . $tweetsuffix;
|
||||
|
||||
|
||||
return $tweet;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function shortUrl($p_url)
|
||||
{
|
||||
switch ($this->settings['shortener-provider']) {
|
||||
case 'tinyurl.com':
|
||||
$short = file_get_contents('http://tinyurl.com/api-create.php?url='.$p_url);
|
||||
break;
|
||||
|
||||
|
||||
case 'bit.ly':
|
||||
$short = file_get_contents("http://api.bit.ly/shorten?version=2.0.1&longUrl={$p_url}&format=text&login={$this->settings['bitly-login']}&apiKey={$this->settings['bitly-apikey']}");
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
return $short;
|
||||
}
|
||||
|
||||
|
||||
public function getWhatsplaying($p_offset)
|
||||
{
|
||||
$timestamp = time() + $p_offset;
|
||||
|
@ -362,47 +364,48 @@ class uiTwitter {
|
|||
if (!$clip['gunid']) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
return array(
|
||||
'tracktitle' => $this->Base->gb->getMetadataValue(BasicStor::IdFromGunid($clip['gunid']), UI_MDATA_KEY_TITLE, $this->Base->sessid),
|
||||
'trackartist' => $this->Base->gb->getMetadataValue(BasicStor::IdFromGunid($clip['gunid']), UI_MDATA_KEY_CREATOR, $this->Base->sessid),
|
||||
'playlisttitle' => $this->Base->gb->getMetadataValue(BasicStor::IdFromGunid($pl['playlistId']), UI_MDATA_KEY_TITLE, $this->Base->sessid),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
public function sendFeed($p_feed)
|
||||
{
|
||||
global $CC_CONFIG;
|
||||
$twitter = new twitter();
|
||||
$twitter->username = $this->settings['login'];
|
||||
$twitter->password = $this->settings['password'];
|
||||
|
||||
|
||||
if ($res = $twitter->update($p_feed)) {
|
||||
$this->Base->gb->saveGroupPref($this->Base->sessid, 'StationPrefs', 'twitter-lastupdate', time());
|
||||
$this->Base->gb->saveGroupPref($this->Base->sessid, $CC_CONFIG['StationPrefsGr'], 'twitter-lastupdate', time());
|
||||
return $res;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public function needsUpdate()
|
||||
{
|
||||
if (time() - $this->Base->gb->loadGroupPref($this->Base->sessid, 'StationPrefs', 'twitter-lastupdate') + $this->runtime > $this->settings['interval']) {
|
||||
if (time() - $this->Base->gb->loadGroupPref($CC_CONFIG['StationPrefsGr'], 'twitter-lastupdate') + $this->runtime > $this->settings['interval']) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public function twitterify($p_string)
|
||||
{
|
||||
$string = preg_replace("#(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t< ]*)#", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $p_string);
|
||||
$string = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r< ]*)#", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $string);
|
||||
$string = preg_replace("/@(\w+)/", "<a href=\"http://www.twitter.com/\\1\" target=\"_blank\">@\\1</a>", $string);
|
||||
$string = preg_replace("/#(\w+)/", "<a href=\"http://search.twitter.com/search?q=\\1\" target=\"_blank\">#\\1</a>", $string);
|
||||
|
||||
|
||||
return $string;
|
||||
}
|
||||
|
||||
|
||||
public function isActive()
|
||||
{
|
||||
return $this->settings['is_active'];
|
||||
return $this->settings['is_active'];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
WWW_ROOT=`cd var/install; php -q getWwwRoot.php` || exit $?
|
||||
echo " *** StorageServer bin/setupDirs.sh BEGIN"
|
||||
echo " *** Root URL: $WWW_ROOT"
|
||||
echo " * Root URL: $WWW_ROOT"
|
||||
PHP_PWD_COMMAND=`bin/getUrl.sh $WWW_ROOT/install/getPwd.php` || \
|
||||
{
|
||||
errno=$?
|
||||
|
@ -37,6 +37,7 @@ PHP_PWD_COMMAND=`bin/getUrl.sh $WWW_ROOT/install/getPwd.php` || \
|
|||
fi
|
||||
exit $errno
|
||||
}
|
||||
|
||||
PHP_PWD=$PHP_PWD_COMMAND
|
||||
# MOD_PHP may not be working, this command will tell us
|
||||
if [ ${PHP_PWD_COMMAND:0:5} == '<?php' ]; then
|
||||
|
@ -44,14 +45,19 @@ if [ ${PHP_PWD_COMMAND:0:5} == '<?php' ]; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
echo " *** Webspace mapping test:"
|
||||
echo " *** mod_php : $PHP_PWD"
|
||||
if [ $PHP_PWD == "" ]; then
|
||||
echo " * ERROR: Could not get PHP working directory."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo " ** Webspace mapping test:"
|
||||
echo " * mod_php : $PHP_PWD"
|
||||
INSTALL_DIR="$PWD/var/install"
|
||||
echo " *** install : $INSTALL_DIR"
|
||||
echo " * install : $INSTALL_DIR"
|
||||
if [ $PHP_PWD == $INSTALL_DIR ]; then
|
||||
echo " *** Mapping OK"
|
||||
echo " * Mapping OK"
|
||||
else
|
||||
echo " *** WARNING: there was a problem with webspace mapping!!!"
|
||||
echo " * WARNING: there was a problem with webspace mapping!!!"
|
||||
fi
|
||||
|
||||
HTTP_GROUP=`bin/getUrl.sh $WWW_ROOT/install/getGname.php` || \
|
||||
|
@ -61,11 +67,11 @@ HTTP_GROUP=`bin/getUrl.sh $WWW_ROOT/install/getGname.php` || \
|
|||
echo " -> Probably wrong setting in var/conf.php: URL configuration";
|
||||
exit $ERN;
|
||||
}
|
||||
echo " *** The system group that is running the http daemon: '$HTTP_GROUP'"
|
||||
echo " ** The system group that is running the http daemon: '$HTTP_GROUP'"
|
||||
|
||||
for i in $*
|
||||
do
|
||||
echo " *** chown :$HTTP_GROUP $i"
|
||||
echo " * chown :$HTTP_GROUP $i"
|
||||
if [ -G $i ]; then
|
||||
chown :$HTTP_GROUP $i || \
|
||||
{
|
||||
|
@ -73,7 +79,7 @@ do
|
|||
echo "ERROR: chown :$HTTP_GROUP $i -> You should have permissions to set group owner to group '$HTTP_GROUP'";
|
||||
exit $ERN;
|
||||
}
|
||||
echo " *** chmod g+sw $i"
|
||||
echo " * chmod g+sw $i"
|
||||
chmod g+sw $i || exit $?
|
||||
fi
|
||||
done
|
||||
|
|
|
@ -1413,20 +1413,18 @@ class BasicStor {
|
|||
return $uid;
|
||||
}
|
||||
if (Subjects::IsGroup($uid) === FALSE) {
|
||||
$res = Alib::AddPerm($uid, '_all', $fid, 'A');
|
||||
$res = Alib::AddPerm($uid, '_all', '0', 'A');
|
||||
if (PEAR::isError($res)) {
|
||||
return $res;
|
||||
}
|
||||
if (!$CC_CONFIG['isArchive']) {
|
||||
$res = Subjects::AddSubjectToGroup($login, $CC_CONFIG['StationPrefsGr']);
|
||||
if (PEAR::isError($res)) {
|
||||
return $res;
|
||||
}
|
||||
$res = Subjects::AddSubjectToGroup($login, $CC_CONFIG['AllGr']);
|
||||
if (PEAR::isError($res)) {
|
||||
return $res;
|
||||
}
|
||||
$res = Subjects::AddSubjectToGroup($login, $CC_CONFIG['StationPrefsGr']);
|
||||
if (PEAR::isError($res)) {
|
||||
return $res;
|
||||
}
|
||||
// $res = Subjects::AddSubjectToGroup($login, $CC_CONFIG['AllGr']);
|
||||
// if (PEAR::isError($res)) {
|
||||
// return $res;
|
||||
// }
|
||||
}
|
||||
return $uid;
|
||||
}
|
||||
|
@ -1811,10 +1809,8 @@ class BasicStor {
|
|||
} else {
|
||||
$this->deleteData();
|
||||
}
|
||||
if (!$CC_CONFIG['isArchive']) {
|
||||
$tr = new Transport($this);
|
||||
$tr->resetData();
|
||||
}
|
||||
$tr = new Transport($this);
|
||||
$tr->resetData();
|
||||
$res = array('cnt'=>0, 'results'=>array());
|
||||
if (!$loadSampleData) {
|
||||
return $res;
|
||||
|
@ -1939,42 +1935,42 @@ class BasicStor {
|
|||
{
|
||||
global $CC_CONFIG;
|
||||
// Create the Admin group
|
||||
if (!empty($CC_CONFIG['AdminsGr'])) {
|
||||
if (!Subjects::GetSubjId($CC_CONFIG['AdminsGr'])) {
|
||||
echo " * Creating group '".$CC_CONFIG['AdminsGr']."'...";
|
||||
// Add the admin group
|
||||
$admid = Subjects::AddSubj($CC_CONFIG['AdminsGr']);
|
||||
if (PEAR::isError($admid)) {
|
||||
return $admid;
|
||||
}
|
||||
|
||||
// Add the "all" permission to the "admin" group
|
||||
$res = Alib::AddPerm($admid, '_all', $this->rootId, 'A');
|
||||
if (PEAR::isError($res)) {
|
||||
return $res;
|
||||
}
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: group already exists: '".$CC_CONFIG['AdminsGr']."'\n";
|
||||
}
|
||||
}
|
||||
// if (!empty($CC_CONFIG['AdminsGr'])) {
|
||||
// if (!Subjects::GetSubjId($CC_CONFIG['AdminsGr'])) {
|
||||
// echo " * Creating group '".$CC_CONFIG['AdminsGr']."'...";
|
||||
// // Add the admin group
|
||||
// $admid = Subjects::AddSubj($CC_CONFIG['AdminsGr']);
|
||||
// if (PEAR::isError($admid)) {
|
||||
// return $admid;
|
||||
// }
|
||||
//
|
||||
// // Add the "all" permission to the "admin" group
|
||||
// $res = Alib::AddPerm($admid, '_all', $this->storId, 'A');
|
||||
// if (PEAR::isError($res)) {
|
||||
// return $res;
|
||||
// }
|
||||
// echo "done.\n";
|
||||
// } else {
|
||||
// echo " * Skipping: group already exists: '".$CC_CONFIG['AdminsGr']."'\n";
|
||||
// }
|
||||
// }
|
||||
|
||||
// Add the "all" group
|
||||
if (!empty($CC_CONFIG['AllGr'])) {
|
||||
if (!Subjects::GetSubjId($CC_CONFIG['AllGr'])) {
|
||||
echo " * Creating group '".$CC_CONFIG['AllGr']."'...";
|
||||
$allid = Subjects::AddSubj($CC_CONFIG['AllGr']);
|
||||
if (PEAR::isError($allid)) {
|
||||
return $allid;
|
||||
}
|
||||
|
||||
// Add the "read" permission to the "all" group.
|
||||
Alib::AddPerm($allid, 'read', $this->rootId, 'A');
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: group already exists: '".$CC_CONFIG['AllGr']."'\n";
|
||||
}
|
||||
}
|
||||
// if (!empty($CC_CONFIG['AllGr'])) {
|
||||
// if (!Subjects::GetSubjId($CC_CONFIG['AllGr'])) {
|
||||
// echo " * Creating group '".$CC_CONFIG['AllGr']."'...";
|
||||
// $allid = Subjects::AddSubj($CC_CONFIG['AllGr']);
|
||||
// if (PEAR::isError($allid)) {
|
||||
// return $allid;
|
||||
// }
|
||||
//
|
||||
// // Add the "read" permission to the "all" group.
|
||||
// Alib::AddPerm($allid, 'read', $this->storId, 'A');
|
||||
// echo "done.\n";
|
||||
// } else {
|
||||
// echo " * Skipping: group already exists: '".$CC_CONFIG['AllGr']."'\n";
|
||||
// }
|
||||
// }
|
||||
|
||||
// Add the "Station Preferences" group
|
||||
if (!empty($CC_CONFIG['StationPrefsGr'])) {
|
||||
|
@ -2001,10 +1997,10 @@ class BasicStor {
|
|||
}
|
||||
|
||||
// Add root user to the admin group
|
||||
$r = Subjects::AddSubjectToGroup('root', $CC_CONFIG['AdminsGr']);
|
||||
if (PEAR::isError($r)) {
|
||||
return $r;
|
||||
}
|
||||
// $r = Subjects::AddSubjectToGroup('root', $CC_CONFIG['AdminsGr']);
|
||||
// if (PEAR::isError($r)) {
|
||||
// return $r;
|
||||
// }
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: user already exists: 'root'\n";
|
||||
|
@ -2013,12 +2009,12 @@ class BasicStor {
|
|||
// Create the user named 'scheduler'.
|
||||
if (!Subjects::GetSubjId('scheduler')) {
|
||||
echo " * Creating user 'scheduler'...";
|
||||
Subjects::AddSubj('scheduler', $CC_CONFIG['schedulerPass']);
|
||||
$res = Alib::AddPerm($rootUid, 'read', $this->rootId, 'A');
|
||||
$subid = Subjects::AddSubj('scheduler', $CC_CONFIG['schedulerPass']);
|
||||
$res = Alib::AddPerm($subid, 'read', '0', 'A');
|
||||
if (PEAR::isError($res)) {
|
||||
return $res;
|
||||
}
|
||||
$r = Subjects::AddSubjectToGroup('scheduler', $CC_CONFIG['AllGr']);
|
||||
//$r = Subjects::AddSubjectToGroup('scheduler', $CC_CONFIG['AllGr']);
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: user already exists: 'scheduler'\n";
|
||||
|
|
|
@ -1,5 +1,14 @@
|
|||
<?php
|
||||
|
||||
// Do not allow remote execution
|
||||
$arr = array_diff_assoc($_SERVER, $_ENV);
|
||||
if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) {
|
||||
header("HTTP/1.1 400");
|
||||
header("Content-type: text/plain; charset=UTF-8");
|
||||
echo "400 Not executable\r\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
require_once('conf.php');
|
||||
require_once('DB.php');
|
||||
require_once('install/installInit.php');
|
||||
|
|
|
@ -1432,10 +1432,10 @@ class GreenBox extends BasicStor {
|
|||
* @return string
|
||||
* preference value
|
||||
*/
|
||||
public function loadGroupPref($sessid, $group, $key)
|
||||
public function loadGroupPref($group, $key)
|
||||
{
|
||||
$pr = new Prefs($this);
|
||||
$res = $pr->loadGroupPref($sessid, $group, $key);
|
||||
$res = $pr->loadGroupPref($group, $key);
|
||||
return $res;
|
||||
} // fn loadGroupPref
|
||||
|
||||
|
|
|
@ -132,16 +132,16 @@ class Prefs {
|
|||
/**
|
||||
* Read group preference record
|
||||
*
|
||||
* @param string $sessid
|
||||
* session id
|
||||
* @param string $group
|
||||
* group name
|
||||
* @param string $key
|
||||
* preference key
|
||||
* @param boolean $returnErrorIfKeyNotExists
|
||||
* If set to true and the key doesnt exist, return a PEAR error.
|
||||
* @return string
|
||||
* preference value
|
||||
*/
|
||||
function loadGroupPref($sessid, $group, $key)
|
||||
function loadGroupPref($group, $key, $returnErrorIfKeyNotExists = true)
|
||||
{
|
||||
// if sessid is would be used here fix Transport::cronCallMethod !
|
||||
$subjid = Subjects::GetSubjId($group);
|
||||
|
@ -157,8 +157,12 @@ class Prefs {
|
|||
return $val;
|
||||
}
|
||||
if ($val === FALSE) {
|
||||
return PEAR::raiseError(
|
||||
"Prefs::loadGroupPref: invalid preference key", GBERR_PREF);
|
||||
if ($returnErrorIfKeyNotExists) {
|
||||
return PEAR::raiseError(
|
||||
"Prefs::loadGroupPref: invalid preference key", GBERR_PREF);
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
return $val;
|
||||
}
|
||||
|
@ -437,59 +441,5 @@ class Prefs {
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Install database table for preference storage
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
// function install()
|
||||
// {
|
||||
// global $CC_CONFIG, $CC_DBC;
|
||||
// $CC_DBC->createSequence("{$this->prefTable}_id_seq");
|
||||
// $r = $CC_DBC->query("CREATE TABLE {$this->prefTable} (
|
||||
// id int not null,
|
||||
// subjid int REFERENCES ".$CC_CONFIG['subjTable']." ON DELETE CASCADE,
|
||||
// keystr varchar(255),
|
||||
// valstr text
|
||||
// )");
|
||||
// if (PEAR::isError($r)) {
|
||||
// return $r;
|
||||
// }
|
||||
// $CC_DBC->query("CREATE UNIQUE INDEX {$this->prefTable}_id_idx
|
||||
// ON {$this->prefTable} (id)");
|
||||
// $CC_DBC->query("CREATE UNIQUE INDEX {$this->prefTable}_subj_key_idx
|
||||
// ON {$this->prefTable} (subjid, keystr)");
|
||||
// $CC_DBC->query("CREATE INDEX {$this->prefTable}_subjid_idx
|
||||
// ON {$this->prefTable} (subjid)");
|
||||
// $stPrefGr = Subjects::GetSubjId($CC_CONFIG['StationPrefsGr']);
|
||||
// if (PEAR::isError($stPrefGr)) {
|
||||
// echo $stPrefGr->getMessage()."\n";
|
||||
// }
|
||||
// $r = Prefs::Insert($stPrefGr, 'stationName', "Radio Station 1");
|
||||
// if (PEAR::isError($r)) {
|
||||
// echo $r->getMessage()."\n";
|
||||
// }
|
||||
// $genres = file_get_contents(dirname(__FILE__).'/../genres.xml');
|
||||
// $r = Prefs::Insert($stPrefGr, 'genres', $genres);
|
||||
// if (PEAR::isError($r)) {
|
||||
// echo $r->getMessage()."\n";
|
||||
// }
|
||||
// return TRUE;
|
||||
// }
|
||||
|
||||
|
||||
/**
|
||||
* Uninstall database table for preference storage
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
// function uninstall()
|
||||
// {
|
||||
// global $CC_CONFIG, $CC_DBC;
|
||||
// $CC_DBC->query("DROP TABLE {$this->prefTable}");
|
||||
// $CC_DBC->dropSequence("{$this->prefTable}_id_seq");
|
||||
// }
|
||||
|
||||
} // class Prefs
|
||||
?>
|
|
@ -458,7 +458,7 @@ class StoredFile {
|
|||
|
||||
if (!is_integer($storedFile->id)) {
|
||||
// NOTE: POSTGRES-SPECIFIC
|
||||
$sql = "SELECT currval('file_id_seq')";
|
||||
$sql = "SELECT currval('".$CC_CONFIG["filesSequence"]."')";
|
||||
$storedFile->id = $CC_DBC->getOne($sql);
|
||||
}
|
||||
// Insert metadata
|
||||
|
|
|
@ -199,9 +199,9 @@ class Transport
|
|||
{
|
||||
require_once('Prefs.php');
|
||||
$pr = new Prefs($this->gb);
|
||||
$group = 'StationPrefs';
|
||||
$group = $CC_CONFIG['StationPrefsGr'];
|
||||
$key = 'TransportsDenied';
|
||||
$res = $pr->loadGroupPref($sessid, $group, $key);
|
||||
$res = $pr->loadGroupPref($group, $key);
|
||||
if (PEAR::isError($res)) {
|
||||
if ($res->getCode() !== GBERR_PREF) {
|
||||
return $res;
|
||||
|
@ -863,6 +863,7 @@ class Transport
|
|||
*/
|
||||
function cronCallMethod($trtok)
|
||||
{
|
||||
global $CC_CONFIG;
|
||||
$trec = TransportRecord::recall($this, $trtok);
|
||||
if (PEAR::isError($trec)) {
|
||||
return $trec;
|
||||
|
@ -903,9 +904,9 @@ class Transport
|
|||
case 'waiting':
|
||||
require_once('Prefs.php');
|
||||
$pr = new Prefs($this->gb);
|
||||
$group = 'StationPrefs';
|
||||
$group = $CC_CONFIG['StationPrefsGr'];
|
||||
$key = 'TransportsDenied';
|
||||
$res = $pr->loadGroupPref(NULL/*sessid*/, $group, $key);
|
||||
$res = $pr->loadGroupPref($group, $key);
|
||||
if (PEAR::isError($res)) {
|
||||
if ($res->getCode() !== GBERR_PREF) {
|
||||
return $res;
|
||||
|
@ -1668,32 +1669,31 @@ class Transport
|
|||
{
|
||||
global $CC_CONFIG;
|
||||
$xrp = XML_RPC_encode($pars);
|
||||
|
||||
$group = 'StationPrefs';
|
||||
|
||||
$pr = new Prefs($this->gb);
|
||||
$group = $CC_CONFIG["StationPrefsGr"];
|
||||
$key = 'archiveServerLocation';
|
||||
$archiveUrl = $pr->loadGroupPref(NULL/*sessid*/, $group, $key);
|
||||
|
||||
if($archiveUrl){
|
||||
|
||||
$archiveUrl = $pr->loadGroupPref($group, $key, false);
|
||||
|
||||
echo "Archive URL: $archiveUrl\n";
|
||||
if ($archiveUrl) {
|
||||
$archiveUrlInfo = parse_url($archiveUrl);
|
||||
|
||||
if($archiveUrlInfo['port']){
|
||||
if ($archiveUrlInfo['port']) {
|
||||
$port = $archiveUrlInfo['port'];
|
||||
}
|
||||
else {
|
||||
$port = 80;
|
||||
}
|
||||
|
||||
|
||||
$c = new XML_RPC_Client($archiveUrlInfo['path'], $archiveUrlInfo['host'], $port);
|
||||
|
||||
$c = new XML_RPC_Client($archiveUrlInfo['path'], $archiveUrlInfo['host'], $port);
|
||||
}
|
||||
else {
|
||||
$c = new XML_RPC_Client(
|
||||
$CC_CONFIG['archiveUrlPath']."/".$CC_CONFIG['archiveXMLRPC'],
|
||||
$CC_CONFIG['archiveUrlHost'], $CC_CONFIG['archiveUrlPort']
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
$f = new XML_RPC_Message($method, array($xrp));
|
||||
$r = $c->send($f);
|
||||
if (!$r) {
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
* <dt>bufferDir <dd>directory for temporary files
|
||||
* <dt>transDir <dd>directory for incomplete transferred files
|
||||
* <dt>accessDir <dd>directory for symlinks to accessed files
|
||||
* <dt>isArchive <dd>local/central flag
|
||||
* <dt>validate <dd>enable/disable validator
|
||||
* <dt>useTrash <dd>enable/disable safe delete (move to trash)
|
||||
* <dt>storageUrlPath<dd>path-URL-part of storageServer base dir
|
||||
|
@ -44,20 +43,20 @@ $CC_CONFIG = array(
|
|||
'phptype' => 'pgsql',
|
||||
'database' => 'Campcaster-paul',
|
||||
),
|
||||
'tblNamePrefix' => 'ls_',
|
||||
'tblNamePrefix' => 'cc_',
|
||||
/* ================================================ storage configuration */
|
||||
'authCookieName'=> 'campcaster_session_id',
|
||||
'AdminsGr' => 'Admins',
|
||||
//'AdminsGr' => 'Admins',
|
||||
'StationPrefsGr'=> 'StationPrefs',
|
||||
'AllGr' => 'All',
|
||||
//'AllGr' => 'All',
|
||||
'TrashName' => 'trash_',
|
||||
'storageDir' => dirname(__FILE__).'/../../storageServer/var/stor',
|
||||
'bufferDir' => dirname(__FILE__).'/../../storageServer/var/stor/buffer',
|
||||
'transDir' => dirname(__FILE__).'/../../storageServer/var/trans',
|
||||
'accessDir' => dirname(__FILE__).'/../../storageServer/var/access',
|
||||
'pearPath' => dirname(__FILE__).'/../../../../usr/lib/pear',
|
||||
// 'zendPath' => dirname(__FILE__).'/../../../../usr/lib',
|
||||
'cronDir' => dirname(__FILE__).'/../../storageServer/var/cron',
|
||||
'isArchive' => FALSE,
|
||||
'validate' => TRUE,
|
||||
'useTrash' => TRUE,
|
||||
|
||||
|
@ -71,6 +70,7 @@ $CC_CONFIG = array(
|
|||
'archiveUrlPath' => '/campcasterStorageServer',
|
||||
'archiveXMLRPC' => 'xmlrpc/xrLocStor.php',
|
||||
'archiveUrlHost' => 'localhost',
|
||||
// 'archiveUrlHost' => '192.168.30.166',
|
||||
'archiveUrlPort' => 80,
|
||||
'archiveAccountLogin' => 'root',
|
||||
'archiveAccountPass' => 'q',
|
||||
|
@ -110,6 +110,7 @@ $CC_CONFIG = array(
|
|||
'lockfile' => dirname(__FILE__).'/../../storageServer/var/stor/buffer/cron.lock',
|
||||
'cronfile' => dirname(__FILE__).'/cron/croncall.php',
|
||||
'paramdir' => dirname(__FILE__).'/cron/params',
|
||||
'systemPrefId' => "0", // ID for system prefs in prefs table
|
||||
);
|
||||
|
||||
// Add database table names
|
||||
|
@ -122,15 +123,16 @@ $CC_CONFIG['subjTable'] = $CC_CONFIG['tblNamePrefix'].'subjs';
|
|||
$CC_CONFIG['smembTable'] = $CC_CONFIG['tblNamePrefix'].'smemb';
|
||||
$CC_CONFIG['transTable'] = $CC_CONFIG['tblNamePrefix'].'trans';
|
||||
$CC_CONFIG['prefTable'] = $CC_CONFIG['tblNamePrefix'].'pref';
|
||||
$CC_CONFIG['playlogTable'] = 'playlog';
|
||||
$CC_CONFIG['scheduleTable'] = 'schedule';
|
||||
$CC_CONFIG['backupTable'] = 'backup';
|
||||
$CC_CONFIG['playlogTable'] = $CC_CONFIG['tblNamePrefix'].'playlog';
|
||||
$CC_CONFIG['scheduleTable'] = $CC_CONFIG['tblNamePrefix'].'schedule';
|
||||
$CC_CONFIG['backupTable'] = $CC_CONFIG['tblNamePrefix'].'backup';
|
||||
$CC_CONFIG['filesSequence'] = $CC_CONFIG['tblNamePrefix']."file_id_seq";
|
||||
|
||||
$CC_CONFIG['sysSubjs'] = array(
|
||||
'root', $CC_CONFIG['AdminsGr'], $CC_CONFIG['AllGr'], $CC_CONFIG['StationPrefsGr']
|
||||
'root', /*$CC_CONFIG['AdminsGr'],*/ /*$CC_CONFIG['AllGr'],*/ $CC_CONFIG['StationPrefsGr']
|
||||
);
|
||||
$old_ip = get_include_path();
|
||||
set_include_path('.'.PATH_SEPARATOR.$CC_CONFIG['pearPath'].PATH_SEPARATOR.$old_ip);
|
||||
$old_include_path = get_include_path();
|
||||
set_include_path('.'.PATH_SEPARATOR.$CC_CONFIG['pearPath'].PATH_SEPARATOR.$old_include_path);
|
||||
|
||||
// see if a ~/.campcaster/storageServer.conf.php exists, and
|
||||
// overwrite the settings from there if any
|
||||
|
|
|
@ -70,8 +70,8 @@ $CC_CONFIG = array(
|
|||
'storageUrlPort' => ls_php_port,
|
||||
|
||||
/* ================================================ archive configuration */
|
||||
'archiveUrlPath' => 'ls_archiveUrlPath',
|
||||
'archiveXMLRPC' => 'xmlrpc/xrArchive.php',
|
||||
'archiveUrlPath' => 'ls_storageUrlPath',
|
||||
'archiveXMLRPC' => 'xmlrpc/xrLocStor.php',
|
||||
'archiveUrlHost' => 'ls_php_host',
|
||||
'archiveUrlPort' => ls_php_port,
|
||||
'archiveAccountLogin' => 'root',
|
||||
|
|
|
@ -43,8 +43,8 @@ $CC_CONFIG = array(
|
|||
'storageUrlPort' => ls_php_port,
|
||||
|
||||
/* ================================================ archive configuration */
|
||||
'archiveUrlPath' => 'ls_archiveUrlPath',
|
||||
'archiveXMLRPC' => 'xmlrpc/xrArchive.php',
|
||||
'archiveUrlPath' => 'ls_storageUrlPath',
|
||||
'archiveXMLRPC' => 'xmlrpc/xrLocStor.php',
|
||||
'archiveUrlHost' => 'ls_php_host',
|
||||
'archiveUrlPort' => ls_php_port,
|
||||
'archiveAccountLogin' => 'root',
|
||||
|
|
|
@ -164,7 +164,7 @@ class Cron {
|
|||
*/
|
||||
function lockCrontab()
|
||||
{
|
||||
return touch($this->lockfile);
|
||||
return @touch($this->lockfile);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -111,7 +111,7 @@ class Crontab
|
|||
|
||||
// It's a regular crontab-entry
|
||||
$ct = split("[ \t]", $line, 6);
|
||||
$this->addCron($ct[0], $ct[1], $ct[2], $ct[3], $ct[4], $ct[5], $ct[6]);
|
||||
$this->addCron($ct[0], $ct[1], $ct[2], $ct[3], $ct[4], $ct[5]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -122,6 +122,9 @@ class Crontab
|
|||
{
|
||||
global $DEBUG, $PATH;
|
||||
|
||||
if (empty($this->linetypes)) {
|
||||
return;
|
||||
}
|
||||
$filename = ($DEBUG ? tempnam("$PATH/crons", "cron") : tempnam("/tmp", "cron"));
|
||||
$file = fopen($filename, "w");
|
||||
|
||||
|
|
|
@ -6,7 +6,9 @@
|
|||
header("Content-type: text/plain");
|
||||
$egid = posix_getegid();
|
||||
$info = posix_getgrgid($egid);
|
||||
if ($_SERVER["REMOTE_ADDR"] == "127.0.0.1") {
|
||||
if ( (isset($_SERVER["REMOTE_ADDR"]) && ($_SERVER["REMOTE_ADDR"] == "127.0.0.1"))
|
||||
|| (isset($_SERVER["HTTP_HOST"]) && ($_SERVER["HTTP_HOST"] == "localhost"))
|
||||
|| (isset($_SERVER["SHELL"])) ) {
|
||||
echo $info['name'];
|
||||
}
|
||||
?>
|
|
@ -4,7 +4,10 @@
|
|||
*----------------------------------------------------------------------------*/
|
||||
|
||||
header("Content-type: text/plain");
|
||||
if ($_SERVER["REMOTE_ADDR"] == "127.0.0.1") {
|
||||
//var_dump($_SERVER);
|
||||
if ( (isset($_SERVER["REMOTE_ADDR"]) && ($_SERVER["REMOTE_ADDR"] == "127.0.0.1"))
|
||||
|| (isset($_SERVER["HTTP_HOST"]) && ($_SERVER["HTTP_HOST"] == "localhost"))
|
||||
|| (isset($_SERVER["SHELL"])) ) {
|
||||
echo `pwd`;
|
||||
}
|
||||
?>
|
|
@ -5,11 +5,10 @@
|
|||
* @copyright 2010 Sourcefabric O.P.S.
|
||||
* @license http://www.gnu.org/licenses/gpl.txt
|
||||
*
|
||||
* Note: This file was broken into two parts: install.php and
|
||||
* installMain.php so that the archive server could use the same
|
||||
* installation script, but with just a different config file.
|
||||
*/
|
||||
|
||||
$WHITE_SCREEN_OF_DEATH = false;
|
||||
|
||||
// Do not allow remote execution
|
||||
$arr = array_diff_assoc($_SERVER, $_ENV);
|
||||
if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) {
|
||||
|
@ -27,8 +26,472 @@ require_once('../conf.php');
|
|||
require_once('../GreenBox.php');
|
||||
require_once("installInit.php");
|
||||
campcaster_db_connect(true);
|
||||
require_once('installMain.php');
|
||||
require_once('installStorage.php');
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Install database tables
|
||||
//------------------------------------------------------------------------------
|
||||
if (!camp_db_table_exists($CC_CONFIG['subjTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['subjTable']."...";
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['subjTable']." (
|
||||
id int not null PRIMARY KEY,
|
||||
login varchar(255) not null default'',
|
||||
pass varchar(255) not null default'',
|
||||
type char(1) not null default 'U',
|
||||
realname varchar(255) not null default'',
|
||||
lastlogin timestamp,
|
||||
lastfail timestamp
|
||||
)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['subjTable']."_id_idx
|
||||
ON ".$CC_CONFIG['subjTable']." (id)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['subjTable']."_login_idx
|
||||
ON ".$CC_CONFIG['subjTable']." (login)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$CC_DBC->createSequence($CC_CONFIG['subjTable']."_id_seq");
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['subjTable']."\n";
|
||||
}
|
||||
|
||||
if (!camp_db_table_exists($CC_CONFIG['smembTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['smembTable']."...";
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['smembTable']." (
|
||||
id int not null PRIMARY KEY,
|
||||
uid int not null default 0,
|
||||
gid int not null default 0,
|
||||
level int not null default 0,
|
||||
mid int)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['smembTable']."_id_idx
|
||||
ON ".$CC_CONFIG['smembTable']." (id)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$CC_DBC->createSequence($CC_CONFIG['smembTable']."_id_seq");
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['smembTable']."\n";
|
||||
}
|
||||
|
||||
if (!camp_db_table_exists($CC_CONFIG['permTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['permTable']."...";
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['permTable']." (
|
||||
permid int not null PRIMARY KEY,
|
||||
subj int REFERENCES ".$CC_CONFIG['subjTable']." ON DELETE CASCADE,
|
||||
action varchar(20),
|
||||
obj int,
|
||||
type char(1))";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['permTable']."_permid_idx
|
||||
ON ".$CC_CONFIG['permTable']." (permid)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['permTable']."_subj_obj_idx
|
||||
ON ".$CC_CONFIG['permTable']." (subj, obj)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['permTable']."_all_idx
|
||||
ON ".$CC_CONFIG['permTable']." (subj, action, obj)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$CC_DBC->createSequence($CC_CONFIG['permTable']."_id_seq");
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['permTable']."\n";
|
||||
}
|
||||
|
||||
if (!camp_db_table_exists($CC_CONFIG['sessTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['sessTable']."...";
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['sessTable']." (
|
||||
sessid char(32) not null PRIMARY KEY,
|
||||
userid int REFERENCES ".$CC_CONFIG['subjTable']." ON DELETE CASCADE,
|
||||
login varchar(255),
|
||||
ts timestamp)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['sessTable']."_sessid_idx
|
||||
ON ".$CC_CONFIG['sessTable']." (sessid)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['sessTable']."_userid_idx
|
||||
ON ".$CC_CONFIG['sessTable']." (userid)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['sessTable']."_login_idx
|
||||
ON ".$CC_CONFIG['sessTable']." (login)";
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['sessTable']."\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* file states:
|
||||
* <ul>
|
||||
* <li>empty</li>
|
||||
* <li>incomplete</li>
|
||||
* <li>ready</li>
|
||||
* <li>edited</li>
|
||||
* <li>deleted</li>
|
||||
* </ul>
|
||||
* file types:
|
||||
* <ul>
|
||||
* <li>audioclip</li>
|
||||
* <li>playlist</li>
|
||||
* <li>webstream</li>
|
||||
* </ul>
|
||||
* access types:
|
||||
* <ul>
|
||||
* <li>access</li>
|
||||
* <li>download</li>
|
||||
* </ul>
|
||||
*/
|
||||
if (!camp_db_table_exists($CC_CONFIG['filesTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['filesTable']."...";
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['filesTable']." (
|
||||
id int not null,
|
||||
gunid bigint not null, -- global unique ID
|
||||
name varchar(255) not null default'', -- human file id ;)
|
||||
mime varchar(255) not null default'', -- mime type
|
||||
ftype varchar(128) not null default'', -- file type
|
||||
state varchar(128) not null default'empty', -- file state
|
||||
currentlyaccessing int not null default 0, -- access counter
|
||||
editedby int REFERENCES ".$CC_CONFIG['subjTable'].", -- who edits it
|
||||
mtime timestamp(6) with time zone, -- lst modif.time
|
||||
md5 char(32)
|
||||
)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['filesTable']."_id_idx
|
||||
ON ".$CC_CONFIG['filesTable']." (id)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['filesTable']."_gunid_idx
|
||||
ON ".$CC_CONFIG['filesTable']." (gunid)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['filesTable']."_name_idx
|
||||
ON ".$CC_CONFIG['filesTable']." (name)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['filesTable']."_md5_idx
|
||||
ON ".$CC_CONFIG['filesTable']." (md5)";
|
||||
camp_install_query($sql);
|
||||
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['filesTable']."\n";
|
||||
}
|
||||
|
||||
if (!camp_db_sequence_exists($CC_CONFIG["filesSequence"])) {
|
||||
echo " * Creating database sequence ".$CC_CONFIG['filesSequence']."...";
|
||||
$sql = "CREATE SEQUENCE ".$CC_CONFIG["filesSequence"]
|
||||
." INCREMENT 1
|
||||
MINVALUE 1
|
||||
MAXVALUE 9223372036854775807
|
||||
START 1000000
|
||||
CACHE 1";
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database sequence already exists: ".$CC_CONFIG['filesSequence']."\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* id subjns subject predns predicate objns object
|
||||
* y1 literal xmbf NULL namespace literal http://www.sotf.org/xbmf
|
||||
* x1 gunid <gunid> xbmf contributor NULL NULL
|
||||
* x2 mdid x1 xbmf role literal Editor
|
||||
*
|
||||
* predefined shortcuts:
|
||||
* _L = literal
|
||||
* _G = gunid (global id of media file)
|
||||
* _I = mdid (local id of metadata record)
|
||||
* _nssshortcut = namespace shortcut definition
|
||||
* _blank = blank node
|
||||
*/
|
||||
if (!camp_db_table_exists($CC_CONFIG['mdataTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['mdataTable']."...";
|
||||
$CC_DBC->createSequence($CC_CONFIG['mdataTable']."_id_seq");
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['mdataTable']." (
|
||||
id int not null,
|
||||
gunid bigint,
|
||||
subjns varchar(255), -- subject namespace shortcut/uri
|
||||
subject varchar(255) not null default '',
|
||||
predns varchar(255), -- predicate namespace shortcut/uri
|
||||
predicate varchar(255) not null,
|
||||
predxml char(1) not null default 'T', -- Tag or Attribute
|
||||
objns varchar(255), -- object namespace shortcut/uri
|
||||
object text
|
||||
)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['mdataTable']."_id_idx
|
||||
ON ".$CC_CONFIG['mdataTable']." (id)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['mdataTable']."_gunid_idx
|
||||
ON ".$CC_CONFIG['mdataTable']." (gunid)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['mdataTable']."_subj_idx
|
||||
ON ".$CC_CONFIG['mdataTable']." (subjns, subject)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['mdataTable']."_pred_idx
|
||||
ON ".$CC_CONFIG['mdataTable']." (predns, predicate)";
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['mdataTable']."\n";
|
||||
}
|
||||
|
||||
if (!camp_db_table_exists($CC_CONFIG['accessTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['accessTable']."...";
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['accessTable']." (
|
||||
gunid bigint, -- global unique id
|
||||
token bigint, -- access token
|
||||
chsum char(32) not null default'', -- md5 checksum
|
||||
ext varchar(128) not null default'', -- extension
|
||||
type varchar(20) not null default'', -- access type
|
||||
parent bigint, -- parent token
|
||||
owner int REFERENCES ".$CC_CONFIG['subjTable'].", -- subject have started it
|
||||
ts timestamp
|
||||
)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['accessTable']."_token_idx
|
||||
ON ".$CC_CONFIG['accessTable']." (token)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['accessTable']."_gunid_idx
|
||||
ON ".$CC_CONFIG['accessTable']." (gunid)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['accessTable']."_parent_idx
|
||||
ON ".$CC_CONFIG['accessTable']." (parent)";
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['accessTable']."\n";
|
||||
}
|
||||
|
||||
echo " * Inserting default users...\n";
|
||||
$gb = new GreenBox();
|
||||
$r = $gb->initData(true);
|
||||
if (PEAR::isError($r)) {
|
||||
echo "\n * ERROR: ";
|
||||
print_r($r);
|
||||
}
|
||||
//echo "done.\n";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Submodules
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
if (!camp_db_table_exists($CC_CONFIG['transTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['transTable']."...";
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['transTable']." (
|
||||
id int not null, -- primary key
|
||||
trtok char(16) not null, -- transport token
|
||||
direction varchar(128) not null, -- direction: up|down
|
||||
state varchar(128) not null, -- state
|
||||
trtype varchar(128) not null, -- transport type
|
||||
lock char(1) not null default 'N',-- running lock
|
||||
target varchar(255) default NULL, -- target system,
|
||||
-- if NULL => predefined set
|
||||
rtrtok char(16) default NULL, -- remote hub's transport token
|
||||
mdtrtok char(16), -- metadata transport token
|
||||
gunid bigint, -- global unique id
|
||||
pdtoken bigint, -- put/download token from archive
|
||||
url varchar(255), -- url on remote side
|
||||
localfile varchar(255), -- pathname of local part
|
||||
fname varchar(255), -- mnemonic filename
|
||||
title varchar(255), -- dc:title mdata value (or filename ...)
|
||||
expectedsum char(32), -- expected file checksum
|
||||
realsum char(32), -- checksum of transported part
|
||||
expectedsize int, -- expected filesize in bytes
|
||||
realsize int, -- filesize of transported part
|
||||
uid int, -- local user id of transport owner
|
||||
errmsg varchar(255), -- error message string for failed tr.
|
||||
jobpid int, -- pid of transport job
|
||||
start timestamp, -- starttime
|
||||
ts timestamp -- mtime
|
||||
)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$CC_DBC->createSequence($CC_CONFIG['transTable']."_id_seq");
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['transTable']."_id_idx
|
||||
ON ".$CC_CONFIG['transTable']." (id)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['transTable']."_trtok_idx
|
||||
ON ".$CC_CONFIG['transTable']." (trtok)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['transTable']."_token_idx
|
||||
ON ".$CC_CONFIG['transTable']." (pdtoken)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['transTable']."_gunid_idx
|
||||
ON ".$CC_CONFIG['transTable']." (gunid)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['transTable']."_state_idx
|
||||
ON ".$CC_CONFIG['transTable']." (state)";
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['transTable']."\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Scheduler tables.
|
||||
*/
|
||||
if (!camp_db_table_exists($CC_CONFIG['scheduleTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['scheduleTable']."...";
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['scheduleTable']."("
|
||||
." id BIGINT NOT NULL,"
|
||||
." playlist BIGINT NOT NULL,"
|
||||
." starts TIMESTAMP NOT NULL,"
|
||||
." ends TIMESTAMP NOT NULL,"
|
||||
." PRIMARY KEY(id))";
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['scheduleTable']."\n";
|
||||
}
|
||||
|
||||
|
||||
if (!camp_db_table_exists($CC_CONFIG['playlogTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['playlogTable']."...";
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['playlogTable']."("
|
||||
." id BIGINT NOT NULL,"
|
||||
." audioClipId BIGINT NOT NULL,"
|
||||
." timestamp TIMESTAMP NOT NULL,"
|
||||
." PRIMARY KEY(id))";
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['playlogTable']."\n";
|
||||
}
|
||||
|
||||
|
||||
if (!camp_db_table_exists($CC_CONFIG['backupTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['backupTable']."...";
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['backupTable']." ("
|
||||
." token VARCHAR(64) NOT NULL,"
|
||||
." sessionId VARCHAR(64) NOT NULL,"
|
||||
." status VARCHAR(32) NOT NULL,"
|
||||
." fromTime TIMESTAMP NOT NULL,"
|
||||
." toTime TIMESTAMP NOT NULL,"
|
||||
." PRIMARY KEY(token))";
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['backupTable']."\n";
|
||||
}
|
||||
|
||||
if (!camp_db_table_exists($CC_CONFIG['prefTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['prefTable']."...";
|
||||
$CC_DBC->createSequence($CC_CONFIG['prefTable']."_id_seq");
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['prefTable']." (
|
||||
id int not null,
|
||||
subjid int REFERENCES ".$CC_CONFIG['subjTable']." ON DELETE CASCADE,
|
||||
keystr varchar(255),
|
||||
valstr text
|
||||
)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['prefTable']."_id_idx
|
||||
ON ".$CC_CONFIG['prefTable']." (id)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['prefTable']."_subj_key_idx
|
||||
ON ".$CC_CONFIG['prefTable']." (subjid, keystr)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['prefTable']."_subjid_idx
|
||||
ON ".$CC_CONFIG['prefTable']." (subjid)";
|
||||
camp_install_query($sql);
|
||||
|
||||
echo " * Inserting starting data into table ".$CC_CONFIG['prefTable']."...";
|
||||
$stPrefGr = Subjects::GetSubjId($CC_CONFIG['StationPrefsGr']);
|
||||
Prefs::Insert($CC_CONFIG["systemPrefId"], 'stationName', "Radio Station 1");
|
||||
$genres = file_get_contents( dirname(__FILE__).'/../genres.xml');
|
||||
Prefs::Insert($CC_CONFIG["systemPrefId"], 'genres', $genres);
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['prefTable']."\n";
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
// Install storage directories
|
||||
//------------------------------------------------------------------------
|
||||
foreach (array('storageDir', 'bufferDir', 'transDir', 'accessDir', 'pearPath', 'cronDir') as $d) {
|
||||
$test = file_exists($CC_CONFIG[$d]);
|
||||
if ( $test === FALSE ) {
|
||||
@mkdir($CC_CONFIG[$d], 02775);
|
||||
if (file_exists($CC_CONFIG[$d])) {
|
||||
$rp = realpath($CC_CONFIG[$d]);
|
||||
echo " * Directory $rp created\n";
|
||||
} else {
|
||||
echo " * Failed creating {$CC_CONFIG[$d]}\n";
|
||||
exit(1);
|
||||
}
|
||||
} elseif (is_writable($CC_CONFIG[$d])) {
|
||||
$rp = realpath($CC_CONFIG[$d]);
|
||||
echo " * Skipping directory already exists: $rp\n";
|
||||
} else {
|
||||
$rp = realpath($CC_CONFIG[$d]);
|
||||
echo " * WARNING: Directory already exists, but is not writable: $rp\n";
|
||||
//exit(1);
|
||||
}
|
||||
$CC_CONFIG[$d] = $rp;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
// Storage directory writability test
|
||||
//------------------------------------------------------------------------
|
||||
|
||||
echo " * Testing writability of ".$CC_CONFIG['storageDir']."...";
|
||||
if (!($fp = @fopen($CC_CONFIG['storageDir']."/_writeTest", 'w'))) {
|
||||
echo "\nPlease make directory {$CC_CONFIG['storageDir']} writeable by your webserver".
|
||||
"\nand run install again\n\n";
|
||||
exit(1);
|
||||
} else {
|
||||
fclose($fp);
|
||||
unlink($CC_CONFIG['storageDir']."/_writeTest");
|
||||
}
|
||||
echo "done.\n";
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
// Install Cron job
|
||||
//------------------------------------------------------------------------
|
||||
require_once(dirname(__FILE__).'/../cron/Cron.php');
|
||||
$m = '*/2';
|
||||
$h ='*';
|
||||
$dom = '*';
|
||||
$mon = '*';
|
||||
$dow = '*';
|
||||
$command = realpath("{$CC_CONFIG['cronDir']}/transportCron.php");
|
||||
$old_regex = '/transportCron\.php/';
|
||||
echo " * Install storageServer cron job...\n";
|
||||
|
||||
$cron = new Cron();
|
||||
$access = $cron->openCrontab('write');
|
||||
if ($access != 'write') {
|
||||
do {
|
||||
$r = $cron->forceWriteable();
|
||||
} while ($r);
|
||||
}
|
||||
|
||||
foreach ($cron->ct->getByType(CRON_CMD) as $id => $line) {
|
||||
if (preg_match($old_regex, $line['command'])) {
|
||||
echo " * Removing old entry: ".$line['command']."\n";
|
||||
$cron->ct->delEntry($id);
|
||||
}
|
||||
}
|
||||
echo " * Adding new entry: ".$command."\n";
|
||||
$cron->ct->addCron($m, $h, $dom, $mon, $dow, $command);
|
||||
$cron->closeCrontab();
|
||||
echo " Done.\n";
|
||||
|
||||
echo "**********************************\n";
|
||||
echo "* StorageServer Install Complete *\n";
|
||||
|
|
|
@ -3,7 +3,6 @@ if (!function_exists('pg_connect')) {
|
|||
trigger_error("PostgreSQL PHP extension required and not found.", E_USER_ERROR);
|
||||
exit(2);
|
||||
}
|
||||
|
||||
require_once('DB.php');
|
||||
require_once('File/Find.php');
|
||||
|
||||
|
@ -18,6 +17,17 @@ function camp_db_table_exists($p_name)
|
|||
return true;
|
||||
}
|
||||
|
||||
function camp_db_sequence_exists($p_name)
|
||||
{
|
||||
global $CC_DBC;
|
||||
$sql = "SELECT 1 FROM pg_class where relname = '$p_name'";
|
||||
$result = $CC_DBC->GetOne($sql);
|
||||
if (!PEAR::isError($result) && $result == "1") {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function camp_install_query($sql, $verbose = true)
|
||||
{
|
||||
global $CC_DBC;
|
||||
|
|
|
@ -1,333 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
|
||||
* @version $Revision: 2475 $
|
||||
* @package Campcaster
|
||||
* @subpackage StorageServer
|
||||
* @copyright 2010 Sourcefabric O.P.S.
|
||||
* @license http://www.gnu.org/licenses/gpl.txt
|
||||
|
||||
*/
|
||||
|
||||
// Do not allow remote execution
|
||||
$arr = array_diff_assoc($_SERVER, $_ENV);
|
||||
if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) {
|
||||
header("HTTP/1.1 400");
|
||||
header("Content-type: text/plain; charset=UTF-8");
|
||||
echo "400 Not executable\r\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Install database tables
|
||||
//------------------------------------------------------------------------------
|
||||
if (!camp_db_table_exists($CC_CONFIG['subjTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['subjTable']."...";
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['subjTable']." (
|
||||
id int not null PRIMARY KEY,
|
||||
login varchar(255) not null default'',
|
||||
pass varchar(255) not null default'',
|
||||
type char(1) not null default 'U',
|
||||
realname varchar(255) not null default'',
|
||||
lastlogin timestamp,
|
||||
lastfail timestamp
|
||||
)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['subjTable']."_id_idx
|
||||
ON ".$CC_CONFIG['subjTable']." (id)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['subjTable']."_login_idx
|
||||
ON ".$CC_CONFIG['subjTable']." (login)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$CC_DBC->createSequence($CC_CONFIG['subjTable']."_id_seq");
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['subjTable']."\n";
|
||||
}
|
||||
|
||||
if (!camp_db_table_exists($CC_CONFIG['smembTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['smembTable']."...";
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['smembTable']." (
|
||||
id int not null PRIMARY KEY,
|
||||
uid int not null default 0,
|
||||
gid int not null default 0,
|
||||
level int not null default 0,
|
||||
mid int)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['smembTable']."_id_idx
|
||||
ON ".$CC_CONFIG['smembTable']." (id)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$CC_DBC->createSequence($CC_CONFIG['smembTable']."_id_seq");
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['smembTable']."\n";
|
||||
}
|
||||
|
||||
if (!camp_db_table_exists($CC_CONFIG['permTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['permTable']."...";
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['permTable']." (
|
||||
permid int not null PRIMARY KEY,
|
||||
subj int REFERENCES ".$CC_CONFIG['subjTable']." ON DELETE CASCADE,
|
||||
action varchar(20),
|
||||
obj int,
|
||||
type char(1))";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['permTable']."_permid_idx
|
||||
ON ".$CC_CONFIG['permTable']." (permid)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['permTable']."_subj_obj_idx
|
||||
ON ".$CC_CONFIG['permTable']." (subj, obj)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['permTable']."_all_idx
|
||||
ON ".$CC_CONFIG['permTable']." (subj, action, obj)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$CC_DBC->createSequence($CC_CONFIG['permTable']."_id_seq");
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['permTable']."\n";
|
||||
}
|
||||
|
||||
if (!camp_db_table_exists($CC_CONFIG['sessTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['sessTable']."...";
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['sessTable']." (
|
||||
sessid char(32) not null PRIMARY KEY,
|
||||
userid int REFERENCES ".$CC_CONFIG['subjTable']." ON DELETE CASCADE,
|
||||
login varchar(255),
|
||||
ts timestamp)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['sessTable']."_sessid_idx
|
||||
ON ".$CC_CONFIG['sessTable']." (sessid)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['sessTable']."_userid_idx
|
||||
ON ".$CC_CONFIG['sessTable']." (userid)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['sessTable']."_login_idx
|
||||
ON ".$CC_CONFIG['sessTable']." (login)";
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['sessTable']."\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* file states:
|
||||
* <ul>
|
||||
* <li>empty</li>
|
||||
* <li>incomplete</li>
|
||||
* <li>ready</li>
|
||||
* <li>edited</li>
|
||||
* <li>deleted</li>
|
||||
* </ul>
|
||||
* file types:
|
||||
* <ul>
|
||||
* <li>audioclip</li>
|
||||
* <li>playlist</li>
|
||||
* <li>webstream</li>
|
||||
* </ul>
|
||||
* access types:
|
||||
* <ul>
|
||||
* <li>access</li>
|
||||
* <li>download</li>
|
||||
* </ul>
|
||||
*/
|
||||
if (!camp_db_table_exists($CC_CONFIG['filesTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['filesTable']."...";
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['filesTable']." (
|
||||
id int not null,
|
||||
gunid bigint not null, -- global unique ID
|
||||
name varchar(255) not null default'', -- human file id ;)
|
||||
mime varchar(255) not null default'', -- mime type
|
||||
ftype varchar(128) not null default'', -- file type
|
||||
state varchar(128) not null default'empty', -- file state
|
||||
currentlyaccessing int not null default 0, -- access counter
|
||||
editedby int REFERENCES ".$CC_CONFIG['subjTable'].", -- who edits it
|
||||
mtime timestamp(6) with time zone, -- lst modif.time
|
||||
md5 char(32)
|
||||
)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['filesTable']."_id_idx
|
||||
ON ".$CC_CONFIG['filesTable']." (id)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['filesTable']."_gunid_idx
|
||||
ON ".$CC_CONFIG['filesTable']." (gunid)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['filesTable']."_name_idx
|
||||
ON ".$CC_CONFIG['filesTable']." (name)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['filesTable']."_md5_idx
|
||||
ON ls_files (md5)";
|
||||
camp_install_query($sql);
|
||||
|
||||
$sql = "CREATE SEQUENCE file_id_seq
|
||||
INCREMENT 1
|
||||
MINVALUE 1
|
||||
MAXVALUE 9223372036854775807
|
||||
START 1000000
|
||||
CACHE 1";
|
||||
camp_install_query($sql);
|
||||
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['filesTable']."\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* id subjns subject predns predicate objns object
|
||||
* y1 literal xmbf NULL namespace literal http://www.sotf.org/xbmf
|
||||
* x1 gunid <gunid> xbmf contributor NULL NULL
|
||||
* x2 mdid x1 xbmf role literal Editor
|
||||
*
|
||||
* predefined shortcuts:
|
||||
* _L = literal
|
||||
* _G = gunid (global id of media file)
|
||||
* _I = mdid (local id of metadata record)
|
||||
* _nssshortcut = namespace shortcut definition
|
||||
* _blank = blank node
|
||||
*/
|
||||
if (!camp_db_table_exists($CC_CONFIG['mdataTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['mdataTable']."...";
|
||||
$CC_DBC->createSequence($CC_CONFIG['mdataTable']."_id_seq");
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['mdataTable']." (
|
||||
id int not null,
|
||||
gunid bigint,
|
||||
subjns varchar(255), -- subject namespace shortcut/uri
|
||||
subject varchar(255) not null default '',
|
||||
predns varchar(255), -- predicate namespace shortcut/uri
|
||||
predicate varchar(255) not null,
|
||||
predxml char(1) not null default 'T', -- Tag or Attribute
|
||||
objns varchar(255), -- object namespace shortcut/uri
|
||||
object text
|
||||
)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['mdataTable']."_id_idx
|
||||
ON ".$CC_CONFIG['mdataTable']." (id)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['mdataTable']."_gunid_idx
|
||||
ON ".$CC_CONFIG['mdataTable']." (gunid)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['mdataTable']."_subj_idx
|
||||
ON ".$CC_CONFIG['mdataTable']." (subjns, subject)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['mdataTable']."_pred_idx
|
||||
ON ".$CC_CONFIG['mdataTable']." (predns, predicate)";
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['mdataTable']."\n";
|
||||
}
|
||||
|
||||
if (!camp_db_table_exists($CC_CONFIG['accessTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['accessTable']."...";
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['accessTable']." (
|
||||
gunid bigint, -- global unique id
|
||||
token bigint, -- access token
|
||||
chsum char(32) not null default'', -- md5 checksum
|
||||
ext varchar(128) not null default'', -- extension
|
||||
type varchar(20) not null default'', -- access type
|
||||
parent bigint, -- parent token
|
||||
owner int REFERENCES ".$CC_CONFIG['subjTable'].", -- subject have started it
|
||||
ts timestamp
|
||||
)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['accessTable']."_token_idx
|
||||
ON ".$CC_CONFIG['accessTable']." (token)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['accessTable']."_gunid_idx
|
||||
ON ".$CC_CONFIG['accessTable']." (gunid)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['accessTable']."_parent_idx
|
||||
ON ".$CC_CONFIG['accessTable']." (parent)";
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['accessTable']."\n";
|
||||
}
|
||||
|
||||
echo " * Inserting starting data into tables...\n";
|
||||
$gb = new GreenBox();
|
||||
$r = $gb->initData(true);
|
||||
if (PEAR::isError($r)) {
|
||||
echo "\n * ERROR: ";
|
||||
print_r($r);
|
||||
}
|
||||
//echo "done.\n";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Submodules
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
if (!camp_db_table_exists($CC_CONFIG['transTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['transTable']."...";
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['transTable']." (
|
||||
id int not null, -- primary key
|
||||
trtok char(16) not null, -- transport token
|
||||
direction varchar(128) not null, -- direction: up|down
|
||||
state varchar(128) not null, -- state
|
||||
trtype varchar(128) not null, -- transport type
|
||||
lock char(1) not null default 'N',-- running lock
|
||||
target varchar(255) default NULL, -- target system,
|
||||
-- if NULL => predefined set
|
||||
rtrtok char(16) default NULL, -- remote hub's transport token
|
||||
mdtrtok char(16), -- metadata transport token
|
||||
gunid bigint, -- global unique id
|
||||
pdtoken bigint, -- put/download token from archive
|
||||
url varchar(255), -- url on remote side
|
||||
localfile varchar(255), -- pathname of local part
|
||||
fname varchar(255), -- mnemonic filename
|
||||
title varchar(255), -- dc:title mdata value (or filename ...)
|
||||
expectedsum char(32), -- expected file checksum
|
||||
realsum char(32), -- checksum of transported part
|
||||
expectedsize int, -- expected filesize in bytes
|
||||
realsize int, -- filesize of transported part
|
||||
uid int, -- local user id of transport owner
|
||||
errmsg varchar(255), -- error message string for failed tr.
|
||||
jobpid int, -- pid of transport job
|
||||
start timestamp, -- starttime
|
||||
ts timestamp -- mtime
|
||||
)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$CC_DBC->createSequence($CC_CONFIG['transTable']."_id_seq");
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['transTable']."_id_idx
|
||||
ON ".$CC_CONFIG['transTable']." (id)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['transTable']."_trtok_idx
|
||||
ON ".$CC_CONFIG['transTable']." (trtok)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['transTable']."_token_idx
|
||||
ON ".$CC_CONFIG['transTable']." (pdtoken)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['transTable']."_gunid_idx
|
||||
ON ".$CC_CONFIG['transTable']." (gunid)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['transTable']."_state_idx
|
||||
ON ".$CC_CONFIG['transTable']." (state)";
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['transTable']."\n";
|
||||
}
|
||||
|
||||
?>
|
|
@ -1,115 +0,0 @@
|
|||
<?php
|
||||
// Do not allow remote execution
|
||||
$arr = array_diff_assoc($_SERVER, $_ENV);
|
||||
if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) {
|
||||
header("HTTP/1.1 400");
|
||||
header("Content-type: text/plain; charset=UTF-8");
|
||||
echo "400 Not executable\r\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (!camp_db_table_exists($CC_CONFIG['prefTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['prefTable']."...";
|
||||
$CC_DBC->createSequence($CC_CONFIG['prefTable']."_id_seq");
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['prefTable']." (
|
||||
id int not null,
|
||||
subjid int REFERENCES ".$CC_CONFIG['subjTable']." ON DELETE CASCADE,
|
||||
keystr varchar(255),
|
||||
valstr text
|
||||
)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['prefTable']."_id_idx
|
||||
ON ".$CC_CONFIG['prefTable']." (id)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['prefTable']."_subj_key_idx
|
||||
ON ".$CC_CONFIG['prefTable']." (subjid, keystr)";
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$sql = "CREATE INDEX ".$CC_CONFIG['prefTable']."_subjid_idx
|
||||
ON ".$CC_CONFIG['prefTable']." (subjid)";
|
||||
camp_install_query($sql);
|
||||
|
||||
echo " * Inserting starting data into table ".$CC_CONFIG['prefTable']."...";
|
||||
$stPrefGr = Subjects::GetSubjId($CC_CONFIG['StationPrefsGr']);
|
||||
Prefs::Insert($stPrefGr, 'stationName', "Radio Station 1");
|
||||
$genres = file_get_contents( dirname(__FILE__).'/../genres.xml');
|
||||
Prefs::Insert($stPrefGr, 'genres', $genres);
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['prefTable']."\n";
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
// Install storage directories
|
||||
//------------------------------------------------------------------------
|
||||
foreach (array('storageDir', 'bufferDir', 'transDir', 'accessDir', 'pearPath', 'cronDir') as $d) {
|
||||
$test = file_exists($CC_CONFIG[$d]);
|
||||
if ( $test === FALSE ) {
|
||||
@mkdir($CC_CONFIG[$d], 02775);
|
||||
if (file_exists($CC_CONFIG[$d])) {
|
||||
$rp = realpath($CC_CONFIG[$d]);
|
||||
echo " * Directory $rp created\n";
|
||||
} else {
|
||||
echo " * Failed creating {$CC_CONFIG[$d]}\n";
|
||||
exit(1);
|
||||
}
|
||||
} elseif (is_writable($CC_CONFIG[$d])) {
|
||||
$rp = realpath($CC_CONFIG[$d]);
|
||||
echo " * Skipping directory already exists: $rp\n";
|
||||
} else {
|
||||
$rp = realpath($CC_CONFIG[$d]);
|
||||
echo " * ERROR. Directory already exists, but is not writable: $rp\n";
|
||||
exit(1);
|
||||
}
|
||||
$CC_CONFIG[$d] = $rp;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
// Storage directory writability test
|
||||
//------------------------------------------------------------------------
|
||||
|
||||
echo " * Testing writability of ".$CC_CONFIG['storageDir']."...";
|
||||
if (!($fp = @fopen($CC_CONFIG['storageDir']."/_writeTest", 'w'))) {
|
||||
echo "\nPlease make directory {$CC_CONFIG['storageDir']} writeable by your webserver".
|
||||
"\nand run install again\n\n";
|
||||
exit(1);
|
||||
} else {
|
||||
fclose($fp);
|
||||
unlink($CC_CONFIG['storageDir']."/_writeTest");
|
||||
}
|
||||
echo "done.\n";
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
// Install Cron job
|
||||
//------------------------------------------------------------------------
|
||||
require_once(dirname(__FILE__).'/../cron/Cron.php');
|
||||
$m = '*/2';
|
||||
$h ='*';
|
||||
$dom = '*';
|
||||
$mon = '*';
|
||||
$dow = '*';
|
||||
$command = realpath("{$CC_CONFIG['cronDir']}/transportCron.php");
|
||||
$old_regex = '/transportCron\.php/';
|
||||
echo " * Install storageServer cron job...\n";
|
||||
|
||||
$cron = new Cron();
|
||||
$access = $cron->openCrontab('write');
|
||||
if ($access != 'write') {
|
||||
do {
|
||||
$r = $cron->forceWriteable();
|
||||
} while ($r);
|
||||
}
|
||||
|
||||
foreach ($cron->ct->getByType(CRON_CMD) as $id => $line) {
|
||||
if (preg_match($old_regex, $line['command'])) {
|
||||
echo " * Removing old entry: ".$line['command']."\n";
|
||||
$cron->ct->delEntry($id);
|
||||
}
|
||||
}
|
||||
echo " * Adding new entry: ".$command."\n";
|
||||
$cron->ct->addCron($m, $h, $dom, $mon, $dow, $command);
|
||||
$cron->closeCrontab();
|
||||
echo " Done.\n";
|
||||
?>
|
|
@ -23,9 +23,171 @@ echo "***************************\n";
|
|||
require_once('../conf.php');
|
||||
require_once('installInit.php');
|
||||
campcaster_db_connect(false);
|
||||
require_once('uninstallStorage.php');
|
||||
|
||||
function camp_uninstall_delete_files($p_path)
|
||||
{
|
||||
if (!empty($p_path) && (strlen($p_path) > 4)) {
|
||||
list($dirList,$fileList) = File_Find::maptree($p_path);
|
||||
foreach ($fileList as $filepath) {
|
||||
echo " * Removing $filepath...";
|
||||
@unlink($filepath);
|
||||
echo "done.\n";
|
||||
}
|
||||
foreach ($dirList as $dirpath) {
|
||||
echo " * Removing $dirpath...";
|
||||
@rmdir($dirpath);
|
||||
echo "done.\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!PEAR::isError($CC_DBC)) {
|
||||
require_once('uninstallMain.php');
|
||||
if (camp_db_table_exists($CC_CONFIG['prefTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['prefTable']."...";
|
||||
$sql = "DROP TABLE ".$CC_CONFIG['prefTable'];
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$CC_DBC->dropSequence($CC_CONFIG['prefTable']."_id_seq");
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['prefTable']."\n";
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
// Uninstall Cron job
|
||||
//------------------------------------------------------------------------
|
||||
require_once(dirname(__FILE__).'/../cron/Cron.php');
|
||||
$old_regex = '/transportCron\.php/';
|
||||
echo " * Uninstall storageServer cron job...\n";
|
||||
|
||||
$cron = new Cron();
|
||||
$access = $cron->openCrontab('write');
|
||||
if ($access != 'write') {
|
||||
do {
|
||||
$r = $cron->forceWriteable();
|
||||
} while ($r);
|
||||
}
|
||||
|
||||
foreach ($cron->ct->getByType(CRON_CMD) as $id => $line) {
|
||||
if (preg_match($old_regex, $line['command'])) {
|
||||
echo " removing cron entry\n";
|
||||
$cron->ct->delEntry($id);
|
||||
}
|
||||
}
|
||||
|
||||
$cron->closeCrontab();
|
||||
echo "Done.\n";
|
||||
|
||||
camp_uninstall_delete_files($CC_CONFIG['storageDir']);
|
||||
camp_uninstall_delete_files($CC_CONFIG['transDir']);
|
||||
camp_uninstall_delete_files($CC_CONFIG['accessDir']);
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['transTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['transTable']."...";
|
||||
$sql = "DROP TABLE ".$CC_CONFIG['transTable'];
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$CC_DBC->dropSequence($CC_CONFIG['transTable']."_id_seq");
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['transTable']."\n";
|
||||
}
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['mdataTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['mdataTable']."...";
|
||||
$sql = "DROP TABLE ".$CC_CONFIG['mdataTable'];
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$CC_DBC->dropSequence($CC_CONFIG['mdataTable']."_id_seq");
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['mdataTable']."\n";
|
||||
}
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['filesTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['filesTable']."...";
|
||||
$sql = "DROP TABLE ".$CC_CONFIG['filesTable'];
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['filesTable']."\n";
|
||||
}
|
||||
|
||||
if (camp_db_sequence_exists($CC_CONFIG['filesSequence'])) {
|
||||
$sql = "DROP SEQUENCE ".$CC_CONFIG['filesSequence'];
|
||||
camp_install_query($sql);
|
||||
}
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['accessTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['accessTable']."...";
|
||||
$sql = "DROP TABLE ".$CC_CONFIG['accessTable'];
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['accessTable']."\n";
|
||||
}
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['permTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['permTable']."...";
|
||||
$sql = "DROP TABLE ".$CC_CONFIG['permTable'];
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$CC_DBC->dropSequence($CC_CONFIG['permTable']."_id_seq");
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['permTable']."\n";
|
||||
}
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['sessTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['sessTable']."...";
|
||||
$sql = "DROP TABLE ".$CC_CONFIG['sessTable'];
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['sessTable']."\n";
|
||||
}
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['subjTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['subjTable']."...";
|
||||
$CC_DBC->dropSequence($CC_CONFIG['subjTable']."_id_seq");
|
||||
|
||||
$sql = "DROP TABLE ".$CC_CONFIG['subjTable'];
|
||||
camp_install_query($sql, false);
|
||||
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['subjTable']."\n";
|
||||
}
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['smembTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['smembTable']."...";
|
||||
$sql = "DROP TABLE ".$CC_CONFIG['smembTable'];
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$CC_DBC->dropSequence($CC_CONFIG['smembTable']."_id_seq");
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['smembTable']."\n";
|
||||
}
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['scheduleTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['scheduleTable']."...";
|
||||
camp_install_query("DROP TABLE ".$CC_CONFIG['scheduleTable']);
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['scheduleTable']."\n";
|
||||
}
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['backupTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['backupTable']."...";
|
||||
camp_install_query("DROP TABLE ".$CC_CONFIG['backupTable']);
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['backupTable']."\n";
|
||||
}
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['playlogTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['playlogTable']."...";
|
||||
$sql = "DROP TABLE ".$CC_CONFIG['playlogTable'];
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['playlogTable']."\n";
|
||||
}
|
||||
|
||||
echo "************************************\n";
|
||||
|
|
|
@ -1,101 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
|
||||
* @version $Revision: 2458 $
|
||||
* @package Campcaster
|
||||
* @subpackage StorageServer
|
||||
* @copyright 2010 Sourcefabric O.P.S.
|
||||
* @license http://www.gnu.org/licenses/gpl.txt
|
||||
|
||||
*/
|
||||
|
||||
// Do not allow remote execution.
|
||||
$arr = array_diff_assoc($_SERVER, $_ENV);
|
||||
if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) {
|
||||
header("HTTP/1.1 400");
|
||||
header("Content-type: text/plain; charset=UTF-8");
|
||||
echo "400 Not executable\r\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['transTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['transTable']."...";
|
||||
$sql = "DROP TABLE ".$CC_CONFIG['transTable'];
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$CC_DBC->dropSequence($CC_CONFIG['transTable']."_id_seq");
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['transTable']."\n";
|
||||
}
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['mdataTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['mdataTable']."...";
|
||||
$sql = "DROP TABLE ".$CC_CONFIG['mdataTable'];
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$CC_DBC->dropSequence($CC_CONFIG['mdataTable']."_id_seq");
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['mdataTable']."\n";
|
||||
}
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['filesTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['filesTable']."...";
|
||||
$sql = "DROP TABLE ".$CC_CONFIG['filesTable'];
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['filesTable']."\n";
|
||||
}
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['accessTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['accessTable']."...";
|
||||
$sql = "DROP TABLE ".$CC_CONFIG['accessTable'];
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['accessTable']."\n";
|
||||
}
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['permTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['permTable']."...";
|
||||
$sql = "DROP TABLE ".$CC_CONFIG['permTable'];
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$CC_DBC->dropSequence($CC_CONFIG['permTable']."_id_seq");
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['permTable']."\n";
|
||||
}
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['sessTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['sessTable']."...";
|
||||
$sql = "DROP TABLE ".$CC_CONFIG['sessTable'];
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['sessTable']."\n";
|
||||
}
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['subjTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['subjTable']."...";
|
||||
$CC_DBC->dropSequence($CC_CONFIG['subjTable']."_id_seq");
|
||||
|
||||
$sql = "DROP TABLE ".$CC_CONFIG['subjTable'];
|
||||
camp_install_query($sql, false);
|
||||
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['subjTable']."\n";
|
||||
}
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['smembTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['smembTable']."...";
|
||||
$sql = "DROP TABLE ".$CC_CONFIG['smembTable'];
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$CC_DBC->dropSequence($CC_CONFIG['smembTable']."_id_seq");
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['smembTable']."\n";
|
||||
}
|
||||
|
||||
?>
|
|
@ -1,77 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Campcaster
|
||||
* @subpackage StorageServer
|
||||
* @copyright 2010 Sourcefabric O.P.S.
|
||||
* @license http://www.gnu.org/licenses/gpl.txt
|
||||
*/
|
||||
|
||||
// Do not allow remote execution.
|
||||
$arr = array_diff_assoc($_SERVER, $_ENV);
|
||||
if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) {
|
||||
header("HTTP/1.1 400");
|
||||
header("Content-type: text/plain; charset=UTF-8");
|
||||
echo "400 Not executable\r\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
function camp_uninstall_delete_files($p_path)
|
||||
{
|
||||
if (!empty($p_path) && (strlen($p_path) > 4)) {
|
||||
list($dirList,$fileList) = File_Find::maptree($p_path);
|
||||
foreach ($fileList as $filepath) {
|
||||
echo " * Removing $filepath...";
|
||||
@unlink($filepath);
|
||||
echo "done.\n";
|
||||
}
|
||||
foreach ($dirList as $dirpath) {
|
||||
echo " * Removing $dirpath...";
|
||||
@rmdir($dirpath);
|
||||
echo "done.\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!PEAR::isError($CC_DBC)) {
|
||||
if (camp_db_table_exists($CC_CONFIG['prefTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['prefTable']."...";
|
||||
$sql = "DROP TABLE ".$CC_CONFIG['prefTable'];
|
||||
camp_install_query($sql, false);
|
||||
|
||||
$CC_DBC->dropSequence($CC_CONFIG['prefTable']."_id_seq");
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['prefTable']."\n";
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
// Uninstall Cron job
|
||||
//------------------------------------------------------------------------
|
||||
require_once(dirname(__FILE__).'/../cron/Cron.php');
|
||||
$old_regex = '/transportCron\.php/';
|
||||
echo " * Uninstall storageServer cron job...\n";
|
||||
|
||||
$cron = new Cron();
|
||||
$access = $cron->openCrontab('write');
|
||||
if ($access != 'write') {
|
||||
do {
|
||||
$r = $cron->forceWriteable();
|
||||
} while ($r);
|
||||
}
|
||||
|
||||
foreach ($cron->ct->getByType(CRON_CMD) as $id => $line) {
|
||||
if (preg_match($old_regex, $line['command'])) {
|
||||
echo " removing cron entry\n";
|
||||
$cron->ct->delEntry($id);
|
||||
}
|
||||
}
|
||||
|
||||
$cron->closeCrontab();
|
||||
echo "Done.\n";
|
||||
|
||||
camp_uninstall_delete_files($CC_CONFIG['storageDir']);
|
||||
camp_uninstall_delete_files($CC_CONFIG['transDir']);
|
||||
camp_uninstall_delete_files($CC_CONFIG['accessDir']);
|
||||
|
||||
?>
|
|
@ -2742,7 +2742,7 @@ class XR_LocStor extends LocStor {
|
|||
}
|
||||
require_once(dirname(__FILE__).'/../Prefs.php');
|
||||
$pr = new Prefs($this);
|
||||
$res = $pr->loadGroupPref($r['sessid'], $r['group'], $r['key']);
|
||||
$res = $pr->loadGroupPref($r['group'], $r['key']);
|
||||
if (PEAR::isError($res)) {
|
||||
$ec0 = intval($res->getCode());
|
||||
$ec = (
|
||||
|
@ -3523,23 +3523,23 @@ class XR_LocStor extends LocStor {
|
|||
* @return XML_RPC_Response
|
||||
* @see LocStor::getAudioClip
|
||||
*/
|
||||
public function xr_resetStorage($input)
|
||||
{
|
||||
list($ok, $r) = XR_LocStor::xr_getParams($input);
|
||||
if (!$ok) {
|
||||
return $r;
|
||||
}
|
||||
$res = $this->resetStorage(
|
||||
isset($r['loadSampleData']) ? $r['loadSampleData'] : TRUE,
|
||||
!(isset($r['invalidateSessionIds']) ? $r['invalidateSessionIds'] : FALSE)
|
||||
);
|
||||
if (PEAR::isError($res)) {
|
||||
return new XML_RPC_Response(0, 805,
|
||||
"xr_getAudioClip: ".$res->getMessage()." ".$res->getUserInfo()
|
||||
);
|
||||
}
|
||||
return new XML_RPC_Response(XML_RPC_encode($res));
|
||||
}
|
||||
// public function xr_resetStorage($input)
|
||||
// {
|
||||
// list($ok, $r) = XR_LocStor::xr_getParams($input);
|
||||
// if (!$ok) {
|
||||
// return $r;
|
||||
// }
|
||||
// $res = $this->resetStorage(
|
||||
// isset($r['loadSampleData']) ? $r['loadSampleData'] : TRUE,
|
||||
// !(isset($r['invalidateSessionIds']) ? $r['invalidateSessionIds'] : FALSE)
|
||||
// );
|
||||
// if (PEAR::isError($res)) {
|
||||
// return new XML_RPC_Response(0, 805,
|
||||
// "xr_getAudioClip: ".$res->getMessage()." ".$res->getUserInfo()
|
||||
// );
|
||||
// }
|
||||
// return new XML_RPC_Response(XML_RPC_encode($res));
|
||||
// }
|
||||
|
||||
/**
|
||||
* Test XMLRPC - strupper and return given string,
|
||||
|
|
|
@ -222,13 +222,13 @@ $mdefs = array(
|
|||
'1320'=>'missing session ID argument',
|
||||
)
|
||||
),
|
||||
"ResetStorageMethod" => array(
|
||||
'm'=>'resetStorage',
|
||||
'p'=>array(),
|
||||
't'=>array(),
|
||||
'r'=>array(),
|
||||
'e'=>array('3001'=>'storage client reported an error'),
|
||||
),
|
||||
// "ResetStorageMethod" => array(
|
||||
// 'm'=>'resetStorage',
|
||||
// 'p'=>array(),
|
||||
// 't'=>array(),
|
||||
// 'r'=>array(),
|
||||
// 'e'=>array('3001'=>'storage client reported an error'),
|
||||
// ),
|
||||
"RevertEditedPlaylistMethod" => array(
|
||||
'm'=>'revertEditedPlaylist',
|
||||
'p'=>array('sessionId'/*string*/, 'playlistId'/*string*/),
|
||||
|
|
|
@ -88,7 +88,7 @@ $methods = array(
|
|||
'accessRawAudioData' => 'Get access to raw audio data.',
|
||||
'releaseRawAudioData' => 'Release access to raw audio data.',
|
||||
'getAudioClip' => 'Return the contents of an Audio clip.',
|
||||
'resetStorage' => 'Reset storageServer for debugging.',
|
||||
// 'resetStorage' => 'Reset storageServer for debugging.',
|
||||
'storeWebstream' => 'Store audio stream identified by URL',
|
||||
|
||||
'createPlaylist' => 'Create a new Playlist metafile.',
|
||||
|
|
|
@ -109,8 +109,8 @@ $infos = array(
|
|||
'p'=>array('sessid', 'gunid', 'metadata'), 'r'=>'status'),
|
||||
"searchMetadata" => array('m'=>"locstor.searchMetadata", 'p'=>NULL),
|
||||
"browseCategory" => array('m'=>"locstor.browseCategory", 'p'=>NULL),
|
||||
"resetStorage" => array('m'=>"locstor.resetStorage",
|
||||
'p'=>array()),
|
||||
// "resetStorage" => array('m'=>"locstor.resetStorage",
|
||||
// 'p'=>array()),
|
||||
# 'p'=>array('loadSampleData', 'invalidateSessionIds')),
|
||||
"storeWebstream" => array('m'=>"locstor.storeWebstream",
|
||||
'p'=>array('sessid', 'gunid', 'metadata', 'fname', 'url'),
|
||||
|
@ -259,12 +259,12 @@ switch ($method) {
|
|||
),
|
||||
);
|
||||
break;
|
||||
case "resetStorage":
|
||||
$parr = array(
|
||||
'loadSampleData'=>(boolean)$pars[0],
|
||||
'invalidateSessionIds'=>(boolean)$pars[1],
|
||||
);
|
||||
break;
|
||||
// case "resetStorage":
|
||||
// $parr = array(
|
||||
// 'loadSampleData'=>(boolean)$pars[0],
|
||||
// 'invalidateSessionIds'=>(boolean)$pars[1],
|
||||
// );
|
||||
// break;
|
||||
default:
|
||||
$pinfo = $infos[$method]['p'];
|
||||
if (is_null($pinfo)) {
|
||||
|
|
|
@ -99,9 +99,8 @@ $methodDefs = array(
|
|||
'p'=>array('sessid', 'gunid', 'metadata'), 'r'=>'status'),
|
||||
"searchMetadata" => array('m'=>"locstor.searchMetadata", 'p'=>NULL),
|
||||
"browseCategory" => array('m'=>"locstor.browseCategory", 'p'=>NULL),
|
||||
"resetStorage" => array('m'=>"locstor.resetStorage",
|
||||
'p'=>array()),
|
||||
# 'p'=>array('loadSampleData', 'invalidateSessionIds')),
|
||||
// "resetStorage" => array('m'=>"locstor.resetStorage",
|
||||
// 'p'=>array()),
|
||||
"storeWebstream" => array('m'=>"locstor.storeWebstream",
|
||||
'p'=>array('sessid', 'gunid', 'metadata', 'fname', 'url'),
|
||||
'r'=>array('gunid')
|
||||
|
|
|
@ -84,16 +84,6 @@ case "$mode" in
|
|||
$scheduler_exe -c $config_file status
|
||||
;;
|
||||
|
||||
'install')
|
||||
echo "Installing Campcaster scheduler database tables..."
|
||||
BASE_DIR=$basedir php $vardir/install/install.php -c $config_file
|
||||
;;
|
||||
|
||||
'uninstall')
|
||||
echo "Uninstalling Campcaster scheduler database tables..."
|
||||
BASE_DIR=$basedir php $vardir/install/uninstall.php -c $config_file
|
||||
;;
|
||||
|
||||
'kill')
|
||||
echo "Killing all Campcaster scheduler processes..."
|
||||
killall campcaster-scheduler
|
||||
|
@ -105,7 +95,7 @@ case "$mode" in
|
|||
echo "Campcaster scheduler System V runlevel init script."
|
||||
echo ""
|
||||
echo "Usage:"
|
||||
echo " $0 start|stop|restart|status|install|uninstall|kill"
|
||||
echo " $0 start|stop|restart|status|kill"
|
||||
echo ""
|
||||
|
||||
esac
|
||||
|
|
|
@ -100,16 +100,6 @@ case "$mode" in
|
|||
$scheduler_exe -c $config_file status
|
||||
;;
|
||||
|
||||
'install')
|
||||
echo "Installing Campcaster scheduler database tables..."
|
||||
BASE_DIR=$usrdir php $vardir/install/install.php -c $config_file
|
||||
;;
|
||||
|
||||
'uninstall')
|
||||
echo "Uninstalling Campcaster scheduler database tables..."
|
||||
BASE_DIR=$usrdir php $vardir/install/uninstall.php -c $config_file
|
||||
;;
|
||||
|
||||
'kill')
|
||||
echo "Killing all Campcaster scheduler processes..."
|
||||
killall campcaster-scheduler
|
||||
|
@ -121,7 +111,7 @@ case "$mode" in
|
|||
echo "Campcaster scheduler System V runlevel init script."
|
||||
echo ""
|
||||
echo "Usage:"
|
||||
echo " $0 start|run|stop|restart|status|install|uninstall|kill"
|
||||
echo " $0 start|run|stop|restart|status|kill"
|
||||
echo ""
|
||||
|
||||
esac
|
||||
|
|
|
@ -343,7 +343,6 @@ copy_files:
|
|||
${MAKE} -C ${EVENT_SCHEDULER_DIR} install
|
||||
${MKDIR} ${USR_BIN_DIR}
|
||||
${MKDIR} ${USR_ETC_DIR}
|
||||
${MKDIR} ${USR_VAR_DIR}/install
|
||||
${MKDIR} ${USR_TMP_DIR}
|
||||
${CP} ${BIN_DIR}/campcaster-scheduler.sh ${USR_BIN_DIR}
|
||||
${CP} ${SCHEDULER_EXE} ${USR_BIN_DIR}
|
||||
|
@ -357,7 +356,6 @@ copy_files:
|
|||
${CAT} ${ETC_DIR}/campcaster-scheduler.xml.template \
|
||||
| ${SED} -e ${REPLACE_SED_STRING} \
|
||||
> ${USR_ETC_DIR}/campcaster-scheduler.xml
|
||||
${CP} ${VAR_DIR}/install/*.php ${USR_VAR_DIR}/install/
|
||||
|
||||
create_database:
|
||||
ifeq (@CREATE_LS_DATABASE@,yes)
|
||||
|
@ -373,20 +371,11 @@ ifeq (@CREATE_ODBC_DATA_SOURCE@,yes)
|
|||
--dbserver=${DB_SERVER}
|
||||
endif
|
||||
|
||||
init_database:
|
||||
ifeq (@INIT_LS_DATABASE@,yes)
|
||||
${USR_BIN_DIR}/campcaster-scheduler.sh install
|
||||
endif
|
||||
|
||||
|
||||
check_local: all ${TEST_RUNNER} kill start_local run_tests stop_local
|
||||
|
||||
run_tests: ${TEST_RUNNER}
|
||||
${TEST_RUNNER_SH} -o ${TEST_RESULTS} -s ${TEST_XSLT}
|
||||
|
||||
init: ${SCHEDULER_EXE}
|
||||
-${SCHEDULER_SH} install
|
||||
|
||||
start: ${SCHEDULER_EXE}
|
||||
${SCHEDULER_SH} start
|
||||
sleep 2
|
||||
|
@ -401,12 +390,6 @@ stop: ${SCHEDULER_EXE}
|
|||
status: ${SCHEDULER_EXE}
|
||||
${SCHEDULER_SH} status
|
||||
|
||||
deinit: ${SCHEDULER_EXE}
|
||||
-${SCHEDULER_SH} uninstall
|
||||
|
||||
init_local: ${SCHEDULER_EXE}
|
||||
${SCHEDULER_EXE} -c ${SCHEDULER_LOCAL_CFG} install
|
||||
|
||||
start_local: ${SCHEDULER_EXE}
|
||||
${SCHEDULER_EXE} -c ${SCHEDULER_LOCAL_CFG} start
|
||||
sleep 2
|
||||
|
@ -422,9 +405,6 @@ run_local: ${SCHEDULER_EXE}
|
|||
${SCHEDULER_EXE} -c ${SCHEDULER_LOCAL_CFG} --debug start
|
||||
sleep 2
|
||||
|
||||
deinit_local: ${SCHEDULER_EXE}
|
||||
${SCHEDULER_EXE} -c ${SCHEDULER_LOCAL_CFG} uninstall
|
||||
|
||||
storage_server_init:
|
||||
${MAKE} -C ${STORAGE_SERVER_DIR}
|
||||
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Campcaster
|
||||
* @subpackage Scheduler
|
||||
* @copyright 2010 Sourcefabric O.P.S.
|
||||
* @license http://www.gnu.org/licenses/gpl.txt
|
||||
*/
|
||||
|
||||
// Do not allow remote execution
|
||||
$arr = array_diff_assoc($_SERVER, $_ENV);
|
||||
if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) {
|
||||
header("HTTP/1.1 400");
|
||||
header("Content-type: text/plain; charset=UTF-8");
|
||||
echo "400 Not executable\r\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$oldIncludePath = get_include_path();
|
||||
$pearDir = getenv('BASE_DIR').'/lib/pear';
|
||||
set_include_path($pearDir.PATH_SEPARATOR.$oldIncludePath);
|
||||
|
||||
require_once('installInit.php');
|
||||
require_once('installScheduler.php');
|
||||
|
||||
echo " * Scheduler install complete\n";
|
||||
|
||||
?>
|
|
@ -1,80 +0,0 @@
|
|||
<?php
|
||||
if (!function_exists('pg_connect')) {
|
||||
trigger_error("PostgreSQL PHP extension required and not found.", E_USER_ERROR);
|
||||
exit(2);
|
||||
}
|
||||
|
||||
require_once('DB.php');
|
||||
|
||||
function camp_db_table_exists($p_name)
|
||||
{
|
||||
global $CC_DBC;
|
||||
$sql = "SELECT * FROM ".$p_name;
|
||||
$result = $CC_DBC->GetOne($sql);
|
||||
if (PEAR::isError($result)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function camp_install_query($sql)
|
||||
{
|
||||
global $CC_DBC;
|
||||
$result = $CC_DBC->query($sql);
|
||||
if (PEAR::isError($result)) {
|
||||
echo "Error! ".$result->getMessage()."\n";
|
||||
echo " SQL statement was:\n";
|
||||
echo " ".$sql."\n\n";
|
||||
} else {
|
||||
echo "done.\n";
|
||||
}
|
||||
}
|
||||
|
||||
$options = getopt("c:");
|
||||
|
||||
if (!$options) {
|
||||
echo "\nYou must specific the config file with -c.\n\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
$configFile = $options['c'];
|
||||
if (!file_exists($configFile)) {
|
||||
echo "\nThe config file '$configFile' does not exist.\n\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
echo " * Using config file $configFile\n";
|
||||
|
||||
$xml = file_get_contents($configFile);
|
||||
$parser = xml_parser_create();
|
||||
xml_parse_into_struct($parser, $xml, $vals, $index);
|
||||
xml_parser_free($parser);
|
||||
|
||||
$CC_CONFIG['dsn'] = array('hostspec' => 'localhost',
|
||||
'phptype' => 'pgsql');
|
||||
|
||||
// Get the user index
|
||||
$userIndex = $index['SIMPLECONNECTIONMANAGER'][0];
|
||||
$CC_CONFIG['dsn']['username'] = $vals[$userIndex]['attributes']['USERNAME'];
|
||||
$CC_CONFIG['dsn']['password'] = $vals[$userIndex]['attributes']['PASSWORD'];
|
||||
$CC_CONFIG['dsn']['database'] = $vals[$userIndex]['attributes']['DSN'];
|
||||
|
||||
$CC_CONFIG['playlogTable'] = 'playlog';
|
||||
$CC_CONFIG['scheduleTable'] = 'schedule';
|
||||
$CC_CONFIG['backupTable'] = 'backup';
|
||||
|
||||
$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE);
|
||||
if (PEAR::isError($CC_DBC)) {
|
||||
echo $CC_DBC->getMessage()."\n";
|
||||
echo $CC_DBC->getUserInfo()."\n";
|
||||
echo "Database connection problem.\n";
|
||||
echo "Check if database '{$CC_CONFIG['dsn']['database']}' exists".
|
||||
" with corresponding permissions.\n";
|
||||
exit(1);
|
||||
} else {
|
||||
echo " * Connected to database\n";
|
||||
}
|
||||
|
||||
$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC);
|
||||
|
||||
?>
|
|
@ -1,51 +0,0 @@
|
|||
<?php
|
||||
// Do not allow remote execution
|
||||
$arr = array_diff_assoc($_SERVER, $_ENV);
|
||||
if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) {
|
||||
header("HTTP/1.1 400");
|
||||
header("Content-type: text/plain; charset=UTF-8");
|
||||
echo "400 Not executable\r\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (!camp_db_table_exists($CC_CONFIG['scheduleTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['scheduleTable']."...";
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['scheduleTable']."("
|
||||
." id BIGINT NOT NULL,"
|
||||
." playlist BIGINT NOT NULL,"
|
||||
." starts TIMESTAMP NOT NULL,"
|
||||
." ends TIMESTAMP NOT NULL,"
|
||||
." PRIMARY KEY(id))";
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['scheduleTable']."\n";
|
||||
}
|
||||
|
||||
|
||||
if (!camp_db_table_exists($CC_CONFIG['playlogTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['playlogTable']."...";
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['playlogTable']."("
|
||||
." id BIGINT NOT NULL,"
|
||||
." audioClipId BIGINT NOT NULL,"
|
||||
." timestamp TIMESTAMP NOT NULL,"
|
||||
." PRIMARY KEY(id))";
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['playlogTable']."\n";
|
||||
}
|
||||
|
||||
|
||||
if (!camp_db_table_exists($CC_CONFIG['backupTable'])) {
|
||||
echo " * Creating database table ".$CC_CONFIG['backupTable']."...";
|
||||
$sql = "CREATE TABLE ".$CC_CONFIG['backupTable']." ("
|
||||
." token VARCHAR(64) NOT NULL,"
|
||||
." sessionId VARCHAR(64) NOT NULL,"
|
||||
." status VARCHAR(32) NOT NULL,"
|
||||
." fromTime TIMESTAMP NOT NULL,"
|
||||
." toTime TIMESTAMP NOT NULL,"
|
||||
." PRIMARY KEY(token))";
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['backupTable']."\n";
|
||||
}
|
||||
?>
|
|
@ -1,24 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Campcaster
|
||||
* @subpackage Scheduler
|
||||
* @copyright 2010 Sourcefabric O.P.S.
|
||||
* @license http://www.gnu.org/licenses/gpl.txt
|
||||
*/
|
||||
|
||||
// Do not allow remote execution.
|
||||
$arr = array_diff_assoc($_SERVER, $_ENV);
|
||||
if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) {
|
||||
header("HTTP/1.1 400");
|
||||
header("Content-type: text/plain; charset=UTF-8");
|
||||
echo "400 Not executable\r\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
require_once('installInit.php');
|
||||
require_once('uninstallScheduler.php');
|
||||
|
||||
echo " * Scheduler uninstall complete\n";
|
||||
|
||||
?>
|
|
@ -1,34 +0,0 @@
|
|||
<?PHP
|
||||
// Do not allow remote execution.
|
||||
$arr = array_diff_assoc($_SERVER, $_ENV);
|
||||
if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) {
|
||||
header("HTTP/1.1 400");
|
||||
header("Content-type: text/plain; charset=UTF-8");
|
||||
echo "400 Not executable\r\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['scheduleTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['scheduleTable']."...";
|
||||
camp_install_query("DROP TABLE ".$CC_CONFIG['scheduleTable']);
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['scheduleTable']."\n";
|
||||
}
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['backupTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['backupTable']."...";
|
||||
camp_install_query("DROP TABLE ".$CC_CONFIG['backupTable']);
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['backupTable']."\n";
|
||||
}
|
||||
|
||||
if (camp_db_table_exists($CC_CONFIG['playlogTable'])) {
|
||||
echo " * Removing database table ".$CC_CONFIG['playlogTable']."...";
|
||||
$sql = "DROP TABLE ".$CC_CONFIG['playlogTable'];
|
||||
camp_install_query($sql);
|
||||
} else {
|
||||
echo " * Skipping: database table ".$CC_CONFIG['playlogTable']."\n";
|
||||
}
|
||||
|
||||
?>
|
Loading…
Reference in New Issue