From 80ad81a1e2c9e9a27a8d09dbe6773f8f119f90db Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 6 May 2026 21:18:05 +0200 Subject: [PATCH] ??? --- utils/seeddms-xmldump | 2 +- utils/seeddms-xmlimport | 2 +- utils/xmlimport.php | 32 +++++++++++++++++++++++--------- 3 files changed, 25 insertions(+), 11 deletions(-) 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 e4f6a178e..10ae9adc3 100644 --- a/utils/xmlimport.php +++ b/utils/xmlimport.php @@ -28,6 +28,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') { /* {{{ */ @@ -469,7 +470,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']]); @@ -500,8 +501,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; @@ -641,7 +642,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']]); @@ -786,7 +787,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']]); @@ -837,7 +838,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']]); @@ -934,7 +935,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']]); @@ -1670,7 +1671,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); @@ -1711,11 +1712,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']); @@ -1723,6 +1732,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'];