From c589a43a35247c84b3d0e7d44706d53e09e45a27 Mon Sep 17 00:00:00 2001 From: tomash Date: Wed, 30 Nov 2005 02:26:22 +0000 Subject: [PATCH] merge with 1.0.2 --- .../src/modules/storageAdmin/bin/autogen.sh | 1 - .../src/modules/storageAdmin/bin/backup.sh | 25 ++++++----- .../modules/storageAdmin/bin/dumpDbSchema.sh | 6 ++- .../src/modules/storageAdmin/bin/import.sh | 8 +++- .../src/modules/storageAdmin/bin/restore.sh | 9 ++-- .../src/modules/storageAdmin/etc/Makefile.in | 42 +++++++++---------- .../src/modules/storageAdmin/etc/configure.ac | 35 ++++++++++++++++ .../src/modules/storageAdmin/tmp/.keepme | 0 .../src/modules/storageAdmin/var/backup.php | 2 +- .../storageAdmin/var/conf.php.template | 2 +- .../src/modules/storageAdmin/var/import.php | 39 +++++++++++------ .../src/modules/storageAdmin/var/restore.php | 4 +- 12 files changed, 117 insertions(+), 56 deletions(-) create mode 100644 livesupport/src/modules/storageAdmin/tmp/.keepme diff --git a/livesupport/src/modules/storageAdmin/bin/autogen.sh b/livesupport/src/modules/storageAdmin/bin/autogen.sh index aba45a0c6..1921c349b 100755 --- a/livesupport/src/modules/storageAdmin/bin/autogen.sh +++ b/livesupport/src/modules/storageAdmin/bin/autogen.sh @@ -37,7 +37,6 @@ package="StorageAdmin" reldir=`dirname $0`/.. basedir=`cd $reldir; pwd;` test -z "$basedir" && basedir=. -usrdir=`cd $basedir/../../../usr; pwd;` bindir=$basedir/bin etcdir=$basedir/etc diff --git a/livesupport/src/modules/storageAdmin/bin/backup.sh b/livesupport/src/modules/storageAdmin/bin/backup.sh index bfce7d27e..771d9f4dc 100755 --- a/livesupport/src/modules/storageAdmin/bin/backup.sh +++ b/livesupport/src/modules/storageAdmin/bin/backup.sh @@ -36,14 +36,17 @@ #------------------------------------------------------------------------------- reldir=`dirname $0`/.. -basedir=`cd $reldir/var; pwd` -phpdir=`cd $reldir/var; pwd` +phpdir=ls_storageAdmin_phppart_dir +if [ "$phpdir" == "ls_storageAdmin_phppart_dir" ] +then + phpdir=`cd $reldir/var; pwd` +fi mkdir -p $reldir/tmp tmpmaindir=`cd $reldir/tmp; pwd` dbxml="db.xml" datestr=`date '+%Y%m%d%H%M%S'` -tarfile0="xmls.tar" -tarfile="storage$datestr.tar" +xmltar="xmls.tar" +destfile="storage$datestr.tar" #------------------------------------------------------------------------------- # Print the usage information for this script. @@ -94,7 +97,7 @@ destdir=`cd $destdir; pwd` tmpdir=`mktemp -d $tmpmaindir/tmp.XXXXXX` -echo "Backuping to $destdir/$tarfile :" +echo "Backuping to $destdir/$destfile :" echo "Dumping database ..." cd $phpdir php -q backup.php > $tmpdir/$dbxml @@ -102,14 +105,14 @@ echo "Packaging stored files ..." cd $phpdir storpath=`php -q getStorPath.php` cd $storpath/.. -find stor -name "*.xml" -print | tar cf $tmpdir/$tarfile0 -T - -find stor ! -name "*.xml" -a -type f -print | tar cf $tmpdir/$tarfile -T - +find stor -name "*.xml" -print | tar cf $tmpdir/$xmltar -T - +find stor ! -name "*.xml" -a -type f -print | tar cf $tmpdir/$destfile -T - cd $tmpdir -tar rf $tarfile0 $dbxml --remove-files +tar rf $xmltar $dbxml --remove-files echo "Compressing XML part ..." -bzip2 $tarfile0 -tar rf $tarfile $tarfile0.bz2 --remove-files -mv $tarfile "$destdir" +bzip2 $xmltar +tar rf $destfile $xmltar.bz2 --remove-files +mv $destfile "$destdir" rmdir $tmpdir #------------------------------------------------------------------------------- diff --git a/livesupport/src/modules/storageAdmin/bin/dumpDbSchema.sh b/livesupport/src/modules/storageAdmin/bin/dumpDbSchema.sh index 14d996c7d..9cd6e0c79 100755 --- a/livesupport/src/modules/storageAdmin/bin/dumpDbSchema.sh +++ b/livesupport/src/modules/storageAdmin/bin/dumpDbSchema.sh @@ -36,7 +36,11 @@ #------------------------------------------------------------------------------- reldir=`dirname $0`/.. -phpdir=`cd $reldir/var; pwd` +phpdir=ls_storageAdmin_phppart_dir +if [ "$phpdir" == "ls_storageAdmin_phppart_dir" ] +then + phpdir=`cd $reldir/var; pwd` +fi filelistpathname=. #------------------------------------------------------------------------------- diff --git a/livesupport/src/modules/storageAdmin/bin/import.sh b/livesupport/src/modules/storageAdmin/bin/import.sh index 89e1dd6a8..19ba3c7b3 100755 --- a/livesupport/src/modules/storageAdmin/bin/import.sh +++ b/livesupport/src/modules/storageAdmin/bin/import.sh @@ -36,7 +36,11 @@ #------------------------------------------------------------------------------- reldir=`dirname $0`/.. -phpdir=`cd $reldir/var; pwd` +phpdir=ls_storageAdmin_phppart_dir +if [ "$phpdir" == "ls_storageAdmin_phppart_dir" ] +then + phpdir=`cd $reldir/var; pwd` +fi filelistpathname=. #------------------------------------------------------------------------------- @@ -70,10 +74,12 @@ while true; do case "$1" in -d|--directory) srcdir=$2; + test -d $srcdir || { echo "Directory not found ($srcdir)."; exit 1; } srcabsdir=`cd "$srcdir"; pwd` shift; shift;; -l|--list) filelist=$2; + test -f $filelist || { echo "File not found ($filelist)."; exit 1; } filelistbasename=`basename "$filelist"` filelistdir=`dirname "$filelist"` filelistabsdir=`cd "$filelistdir"; pwd` diff --git a/livesupport/src/modules/storageAdmin/bin/restore.sh b/livesupport/src/modules/storageAdmin/bin/restore.sh index 33b94c3ce..3d7fa2384 100755 --- a/livesupport/src/modules/storageAdmin/bin/restore.sh +++ b/livesupport/src/modules/storageAdmin/bin/restore.sh @@ -36,14 +36,15 @@ #------------------------------------------------------------------------------- reldir=`dirname $0`/.. -basedir=`cd $reldir/var; pwd` -phpdir=`cd $reldir/var; pwd` +phpdir=ls_storageAdmin_phppart_dir +if [ "$phpdir" == "ls_storageAdmin_phppart_dir" ] +then + phpdir=`cd $reldir/var; pwd` +fi mkdir -p $reldir/tmp tmpmaindir=`cd $reldir/tmp; pwd` dbxml="db.xml" -#datestr=`date '+%Y%m%d%H%M%S'` tarfile0="xmls.tar" -#tarfile="storage$datestr.tar" #------------------------------------------------------------------------------- # Print the usage information for this script. diff --git a/livesupport/src/modules/storageAdmin/etc/Makefile.in b/livesupport/src/modules/storageAdmin/etc/Makefile.in index 3b3090d28..81c7ddbb1 100644 --- a/livesupport/src/modules/storageAdmin/etc/Makefile.in +++ b/livesupport/src/modules/storageAdmin/etc/Makefile.in @@ -57,6 +57,7 @@ BASE_DIR = . DOC_DIR = ${BASE_DIR}/doc DOXYGEN_DIR = ${DOC_DIR}/doxygen ETC_DIR = ${BASE_DIR}/etc +DOXYGEN_CONFIG = ${ETC_DIR}/doxygen.config INCLUDE_DIR = ${BASE_DIR}/include LIB_DIR = ${BASE_DIR}/lib SRC_DIR = ${BASE_DIR}/src @@ -67,30 +68,21 @@ BIN_DIR = ${BASE_DIR}/bin prefix = @prefix@ USR_DIR = ${prefix} -USR_INCLUDE_DIR = ${USR_DIR}/include -USR_VAR_DIR = ${USR_DIR}/var -DOXYGEN_CONFIG = ${ETC_DIR}/doxygen.config +DEST_DIR = ${USR_DIR} +PHPPART_DIR = ${prefix}/var/LiveSupport/storageAdmin/var +STORAGE_SERVER = @STORAGE_SERVER@ -PHP_DIR = ${VAR_DIR} -#TEST_RUNNER = ${PHP_DIR}/tests/index.php +PHPPART_DIR_S=$(shell ${ECHO} ${PHPPART_DIR} | ${SED} -e "s/\//\\\\\\\\\//g") +STORAGE_SERVER_S=$(shell ${ECHO} ${STORAGE_SERVER} | ${SED} -e "s/\//\\\\\\\\\//g") -#DEST_DIR = ${USR_VAR_DIR}/LiveSupport/storageAdmin/var -DEST_DIR = ${USR_DIR}/usr - -USR_VAR_DIR_S=$(shell ${ECHO} ${USR_VAR_DIR} | ${SED} -e "s/\//\\\\\\\\\//g") - -REPLACE_SED_STRING="s/ls_var_dir/${USR_VAR_DIR_S}/;" +SED_STORAGE_SERVER="s/ls_storageServer/${STORAGE_SERVER_S}/;" +SED_PHPPART_DIR="s/phpdir=ls_storageAdmin_phppart_dir/phpdir=${PHPPART_DIR_S}/;" #------------------------------------------------------------------------------- # Configuration parameters #------------------------------------------------------------------------------- -#CPPFLAGS = @CPPFLAGS@ -#CXXFLAGS = @CXXFLAGS@ @DEFS@ -I${USR_INCLUDE_DIR} -I${INCLUDE_DIR} -I${TMP_DIR}\ -# -pedantic -Wall -#LDFLAGS = @LDFLAGS@ -L${USR_LIB_DIR} -L${LIB_DIR} - #------------------------------------------------------------------------------- # Dependencies @@ -126,18 +118,24 @@ dist: all distclean: clean docclean # ${RMDIR} ${TMP_DIR}/config* ${TMP_DIR}/autom4te* -#check: all ${TEST_RUNNER} -# ${TEST_RUNNER} check: all install: ${MKDIR} ${DEST_DIR}/bin ${CP} ${BIN_DIR}/*.sh ${DEST_DIR}/bin ${RM} ${DEST_DIR}/bin/autogen.sh - ${MKDIR} ${DEST_DIR}/var - ${CP} ${VAR_DIR}/*.php ${DEST_DIR}/var - ${CAT} ${VAR_DIR}/conf.php.template | ${SED} -e ${REPLACE_SED_STRING} \ - > ${DEST_DIR}/var/conf.php + ${CAT} ${BIN_DIR}/import.sh | ${SED} -e ${SED_PHPPART_DIR} \ + > ${DEST_DIR}/bin/import.sh + ${CAT} ${BIN_DIR}/backup.sh | ${SED} -e ${SED_PHPPART_DIR} \ + > ${DEST_DIR}/bin/backup.sh + ${CAT} ${BIN_DIR}/restore.sh | ${SED} -e ${SED_PHPPART_DIR} \ + > ${DEST_DIR}/bin/restore.sh + ${CAT} ${BIN_DIR}/dumpDbSchema.sh | ${SED} -e ${SED_PHPPART_DIR} \ + > ${DEST_DIR}/bin/dumpDbSchema.sh + ${MKDIR} ${PHPPART_DIR} + ${CP} ${VAR_DIR}/*.php ${PHPPART_DIR} + ${CAT} ${VAR_DIR}/conf.php.template | ${SED} -e ${SED_STORAGE_SERVER} \ + > ${PHPPART_DIR}/conf.php #------------------------------------------------------------------------------- diff --git a/livesupport/src/modules/storageAdmin/etc/configure.ac b/livesupport/src/modules/storageAdmin/etc/configure.ac index 728e696c7..8b650aa99 100644 --- a/livesupport/src/modules/storageAdmin/etc/configure.ac +++ b/livesupport/src/modules/storageAdmin/etc/configure.ac @@ -39,6 +39,41 @@ AC_REVISION($Revision$) AC_CONFIG_SRCDIR(../var/getStorPath.php) +dnl----------------------------------------------------------------------------- +dnl specify directory with php parts of scripts +dnl----------------------------------------------------------------------------- +AC_SUBST(PHPPART_DIR) + +AC_ARG_WITH([phppart-dir], + AC_HELP_STRING([--with-phppart-dir], + [directory with php parts of scripts]), + [PHPPART_DIR=${withval}], [PHPPART_DIR=${prefix}/var/LiveSupport/storageAdmin/var]) + +AC_MSG_RESULT([directory with php parts of scripts: ${PHPPART_DIR}]) + +dnl----------------------------------------------------------------------------- +dnl specify storageServer directory +dnl----------------------------------------------------------------------------- +AC_SUBST(STORAGE_SERVER) + +AC_ARG_WITH([storage-server], + AC_HELP_STRING([--with-storage-server], + [use storageServer in given directory]), + [STORAGE_SERVER=${withval}], [STORAGE_SERVER=${prefix}/var/LiveSupport/storageServer]) + +AC_MSG_RESULT([using storageServer at: ${STORAGE_SERVER}]) + +dnl----------------------------------------------------------------------------- +dnl msg notice +dnl----------------------------------------------------------------------------- +AC_MSG_NOTICE( +[using the following configuration settings: + + storageServer directory: ${STORAGE_SERVER} + php parts directory: ${PHPPART_DIR} + +]) + AC_CONFIG_FILES(../Makefile:../etc/Makefile.in) diff --git a/livesupport/src/modules/storageAdmin/tmp/.keepme b/livesupport/src/modules/storageAdmin/tmp/.keepme new file mode 100644 index 000000000..e69de29bb diff --git a/livesupport/src/modules/storageAdmin/var/backup.php b/livesupport/src/modules/storageAdmin/var/backup.php index 2cade21fc..0214c09d8 100644 --- a/livesupport/src/modules/storageAdmin/var/backup.php +++ b/livesupport/src/modules/storageAdmin/var/backup.php @@ -122,7 +122,7 @@ function admDumpGroup(&$bs, $gid, $ind=''){ )); } $garr = $bs->listGroup($gid); - if(PEAR::isError($farr)){ echo $farr->getMessage(); exit; } + if(PEAR::isError($garr)){ echo $garr->getMessage(); exit; } $res = ''; foreach($garr as $i =>$member){ $fid2 = $member['id']; diff --git a/livesupport/src/modules/storageAdmin/var/conf.php.template b/livesupport/src/modules/storageAdmin/var/conf.php.template index 13e45c508..ac99d5d8a 100644 --- a/livesupport/src/modules/storageAdmin/var/conf.php.template +++ b/livesupport/src/modules/storageAdmin/var/conf.php.template @@ -28,5 +28,5 @@ ------------------------------------------------------------------------------*/ -$storageServerPath = 'ls_var_dir/LiveSupport/storageServer'; +$storageServerPath = 'ls_storageServer'; ?> diff --git a/livesupport/src/modules/storageAdmin/var/import.php b/livesupport/src/modules/storageAdmin/var/import.php index 85fa3f608..42136fe04 100644 --- a/livesupport/src/modules/storageAdmin/var/import.php +++ b/livesupport/src/modules/storageAdmin/var/import.php @@ -27,6 +27,7 @@ Location : $URL$ ------------------------------------------------------------------------------*/ +ini_set('memory_limit', '64M'); header("Content-type: text/plain"); echo "\n#StorageServer import script:\n"; //echo date('H:i:s')."\n"; @@ -45,7 +46,7 @@ if(PEAR::isError($dbc)){ echo "ERROR: ".$dbc->getMessage()." ".$dbc->getUserInfo $dbc->setFetchMode(DB_FETCHMODE_ASSOC); $gb = &new GreenBox($dbc, $config); -$testonly = ($argv[1] == '-n'); +$testonly = (isset($argv[1]) && $argv[1] == '-n'); #$testonly = TRUE; $errors=0; @@ -61,7 +62,13 @@ $flds = array( 'mime_type' => 'dc:format', 'bitrate' => 'ls:bitrate', 'playtime_seconds' => 'dcterms:extent', - 'tags' => array( +/* + 'id3v1' => array( + 'title' => 'dc:title', + 'artist' => 'dc:creator', + ), +*/ + 'id3v2' => array( 'TT2' => 'dc:title', 'TIT2' => 'dc:title', 'TP1' => 'dc:creator', @@ -95,6 +102,8 @@ $flds = array( ); $titleKey = 'dc:title'; +$enc = 'iso-8859-1'; +#$enc = 'UTF-8'; $r = $gb->getObjId('import', $gb->storId); if(PEAR::isError($r)){ echo "ERROR: ".$r->getMessage()." ".$r->getUserInfo()."\n"; exit(1); } @@ -104,16 +113,16 @@ if(is_null($r)){ } $parid = $r; -function addMdata($key, $val){ +function addMdata($key, $val, $iEnc='iso-8859-1'){ global $mdata, $titleHaveSet, $titleKey; + #echo "$key($iEnc): $val\n"; if(!is_null($val)){ $mdata[$key] = $val; -/* - $iEnc = 'UTF-8'; - $oEnc = 'ISO-8859-1'; $oEnc = 'UTF-8'; - $mdata[$key] = iconv($iEnc, $oEnc, $mdata[$key]); -*/ + if(function_exists('iconv')){ + $mdata[$key] = $r = @iconv($iEnc, $oEnc, $mdata[$key]); + if($r === FALSE) die("Recoding metadata to unicode failed."); + } if($key == $titleKey) $titleHaveSet = TRUE; } } @@ -131,18 +140,23 @@ while($filename = fgets($stdin, 2048)){ $mdata = array(); $titleHaveSet = FALSE; foreach($flds as $k1=>$fn1){ + if($testonly) echo"#$k1, $fn1\n"; if(is_null($fn1)) continue; + if(!isset($infoFromFile[$k1])) continue; list($fn, $v) = array($fn1, $infoFromFile[$k1]); if(is_array($fn1)){ $k0 = $k1; //if($k0=='tags') $k1=$infoFromFile['tags'][0]; - $k1 = 'id3v2'; + //$k1 = 'id3v2'; + if(!isset($infoFromFile[$k1])) continue; list($fn, $v) = array($fn1, $infoFromFile[$k1]); foreach($fn1 as $k2=>$fn2){ + if($testonly) echo" #$k2, $fn2\n"; if(is_null($fn2)) continue; if(!isset($infoFromFile[$k1][$k2])) continue; switch($k0){ case"tags": + case"id3v2": list($fn, $v) = array($fn2, $infoFromFile[$k1][$k2]['data']); $enc = $infoFromFile[$k1][$k2]['encoding']; if($enc != 'UTF-8' && $enc != 'ISO-8859-1'){ @@ -155,7 +169,8 @@ while($filename = fgets($stdin, 2048)){ default; list($fn, $v) = array($fn2, $infoFromFile[$k1][$k2]); } - addMdata($fn, $v); + if($testonly) echo" - $v\n"; + addMdata($fn, $v, $enc); } }else{ switch($fn){ @@ -165,10 +180,10 @@ while($filename = fgets($stdin, 2048)){ default: list($fn, $v) = array($fn1, $infoFromFile[$k1]); } - addMdata($fn, $v); + addMdata($fn, $v, $enc); } } - if(!$titleHaveSet || trim($mdata[$titleKey])=='') addMdata($titleKey, basename($filename)." X"); + if(!$titleHaveSet || trim($mdata[$titleKey])=='') addMdata($titleKey, basename($filename)); // unset($mdata['dc:title']); if(!$testonly){ diff --git a/livesupport/src/modules/storageAdmin/var/restore.php b/livesupport/src/modules/storageAdmin/var/restore.php index 1381bcce9..06aadd1c7 100644 --- a/livesupport/src/modules/storageAdmin/var/restore.php +++ b/livesupport/src/modules/storageAdmin/var/restore.php @@ -75,7 +75,7 @@ function ls_restore_restoreObject($obj, $parid, $reallyInsert=TRUE){ $r = $bs->bsCreateFolder($parid, $obj['name']); ls_restore_checkErr($r, __LINE__); }else $r=$parid; - if(is_array($obj['children'])){ + if(isset($obj['children']) && is_array($obj['children'])){ foreach($obj['children'] as $i=>$ch){ ls_restore_restoreObject($ch, $r); } @@ -167,7 +167,7 @@ foreach($subjArr as $i=>$el){ 'pass' => $el->attrs['pass']->val, # 'realname' => $el->attrs['realname']->val, 'realname' => '', - 'prefs' => $el->children[0]->children, + 'prefs' => (isset($el->children[0]) ? $el->children[0]->children : NULL), ); break; }