diff --git a/utils/seeddms-xmldump b/utils/seeddms-xmldump index c9eb1fdb1..e77be3446 100755 --- a/utils/seeddms-xmldump +++ b/utils/seeddms-xmldump @@ -1,7 +1,7 @@ #!/usr/bin/env bash if [ -z "${SEEDDMS_HOME}" ]; then - parentdir=$(dirname "$0") + parentdir=$(dirname `realpath "$0"`) export SEEDDMS_HOME=$(dirname "$parentdir") fi diff --git a/utils/seeddms-xmlimport b/utils/seeddms-xmlimport index a3ef53346..33d1dd9c2 100755 --- a/utils/seeddms-xmlimport +++ b/utils/seeddms-xmlimport @@ -1,7 +1,7 @@ #!/usr/bin/env bash if [ -z "${SEEDDMS_HOME}" ]; then - parentdir=$(dirname "$0") + parentdir=$(dirname `realpath "$0"`) export SEEDDMS_HOME=$(dirname "$parentdir") fi diff --git a/utils/xmlimport.php b/utils/xmlimport.php index fd5003bf0..3792bd567 100644 --- a/utils/xmlimport.php +++ b/utils/xmlimport.php @@ -30,6 +30,7 @@ function usage() { /* {{{ */ echo " --default-user : use this user if user could not be found.".PHP_EOL; echo " --export-mapping : write object mapping into file".PHP_EOL; echo " --debug: turn debug output on".PHP_EOL; + echo " --log-file: set log file ('-' stands for stdout).".PHP_EOL; } /* }}} */ function dateToTimestamp($date, $format='Y-m-d H:i:s') { /* {{{ */ @@ -505,7 +506,7 @@ function insert_document($document) { /* {{{ */ print_r($document); if(!array_key_exists((int) $document['attributes']['owner'], $objmap['users'])) { - $logger->warning("Owner of document cannot be mapped using default user"); + $logger->warning("Owner of document cannot be mapped, using default user"); $owner = $defaultUser; } else { $owner = $dms->getUser($objmap['users'][(int) $document['attributes']['owner']]); @@ -536,8 +537,8 @@ function insert_document($document) { /* {{{ */ if(array_key_exists($document['folder'], $objmap['folders'])) { $folder = $dms->getFolder($objmap['folders'][$document['folder']]); } else { - $logger->err("Folder ".$document['folder']." cannot be mapped"); - return false; + $logger->err("Folder ".$document['folder']." cannot be mapped, using import folder"); + $folder = $rootfolder; } } else $folder = $rootfolder; @@ -687,7 +688,7 @@ function insert_document($document) { /* {{{ */ $newDocument->setInheritAccess($document['attributes']['inheritaccess']); foreach($document['versions'] as $version) { if(!array_key_exists((int) $version['attributes']['owner'], $objmap['users'])) { - $logger->warning("Owner of document version cannot be mapped using default user"); + $logger->warning("Owner of document version cannot be mapped, using default user"); $owner = $defaultUser; } else { $owner = $dms->getUser($objmap['users'][(int) $version['attributes']['owner']]); @@ -842,7 +843,7 @@ function insert_document($document) { /* {{{ */ if(isset($document['files']) && $document['files']) { foreach($document['files'] as $file) { if(!array_key_exists($file['attributes']['owner'], $objmap['users'])) { - $logger->warning("User for file cannot be mapped"); + $logger->warning("User for file cannot be mapped, using default user"); $owner = $defaultUser; } else { $owner = $dms->getUser($objmap['users'][$file['attributes']['owner']]); @@ -893,7 +894,7 @@ function insert_folder($folder) { /* {{{ */ if(in_array('folders', $sections)) { if(!array_key_exists($folder['attributes']['owner'], $objmap['users'])) { - $logger->warning("Owner of folder cannot be mapped using default user"); + $logger->warning("Owner of folder cannot be mapped, using default user"); $owner = $defaultUser; } else { $owner = $dms->getUser($objmap['users'][(int) $folder['attributes']['owner']]); @@ -1032,7 +1033,7 @@ function resolve_links() { /* {{{ */ if(array_key_exists($doclink['attributes']['target'], $objmap['documents'])) { if($target = $dms->getDocument($objmap['documents'][$doclink['attributes']['target']])) { if(!array_key_exists($doclink['attributes']['owner'], $objmap['users'])) { - $logger->warning("User for link cannot be mapped using default user"); + $logger->warning("User for link cannot be mapped, using default user"); $owner = $defaultUser; } else { $owner = $dms->getUser($objmap['users'][$doclink['attributes']['owner']]); @@ -1873,7 +1874,7 @@ function characterData($parser, $data) { /* {{{ */ $version = "0.0.1"; $shortoptions = "hv"; -$longoptions = array('help', 'version', 'debug', 'config:', 'sections:', 'folder:', 'file:', 'contentdir:', 'default-user:', 'export-mapping:', 'no-version-check'); +$longoptions = array('help', 'version', 'debug', 'config:', 'sections:', 'folder:', 'file:', 'contentdir:', 'default-user:', 'export-mapping:', 'no-version-check', 'log-file:'); if(false === ($options = getopt($shortoptions, $longoptions))) { usage(); exit(0); @@ -1914,11 +1915,19 @@ require_once($myincpath."/inc/inc.Extension.php"); require_once($myincpath."/inc/inc.DBInit.php"); require_once($myincpath."/inc/inc.ClassAcl.php"); +/* Set alternative log file */ $logfile = "xmlimport.log"; +if(isset($options['log-file'])) { + $logfile = $options['log-file']; +} + $logconf = array(); $logconf['timeformat'] = '%Y-%m-%d %H:%M:%S'; $logconf['lineFormat'] = '%{timestamp} %{priority} xmlimport: %{ident} %{message}'; -$logger = Log::factory('file', $logfile, '', $logconf); +if($logfile == '-') + $logger = Log::factory('console', '', '', $logconf); +else + $logger = Log::factory('file', $logfile, '', $logconf); if(isset($options['folder'])) { $folderid = intval($options['folder']); @@ -1926,6 +1935,11 @@ if(isset($options['folder'])) { $folderid = $settings->_rootFolderID; } +if (!is_writable($settings->_contentDir)) { + $logger->crit("Directory ".$settings->_contentDir." is not writable."); + exit; +} + if(isset($options['contentdir'])) { if(file_exists($options['contentdir'])) { $contentdir = $options['contentdir'];