test recursive dav copy

This commit is contained in:
zotlabs 2017-08-22 20:32:02 -07:00
parent 182f94a9ac
commit 41ff8fdd37
2 changed files with 19 additions and 5 deletions

View File

@ -6,6 +6,8 @@ class Importfile {
static public function run($argc,$argv){ static public function run($argc,$argv){
logger('Importfile: ' . print_r($argv,true));
if($argc < 3) if($argc < 3)
return; return;

View File

@ -36,8 +36,20 @@ if($argc <= 3) {
if(! $channel) if(! $channel)
return; return;
for($x = 1; $x < ($argc - 1); $x ++) {
if(($argv[$x] === '-r') || ($argv[$x] === '-R')) {
$recursive = true;
break;
}
}
$isadir = false; $isadir = false;
if(($recursive) || ($argc > 3))
$isadir = true;
$r = q("select * from attach where display_path = '%s' and uid = %d limit 1", $r = q("select * from attach where display_path = '%s' and uid = %d limit 1",
dbesc($dstfile), dbesc($dstfile),
intval($channel['channel_id']) intval($channel['channel_id'])
@ -49,8 +61,9 @@ if($argc <= 3) {
$folder = $r[0]['hash']; $folder = $r[0]['hash'];
} }
else { else {
$pathname = (($isadir) ? $dstfile : dirname($dstfile));
$arr = [ $arr = [
'pathname' => dirname($dstfile), 'pathname' => $pathname,
'allow_cid' => $channel['channel_allow_cid'], 'allow_cid' => $channel['channel_allow_cid'],
'allow_gid' => $channel['channel_allow_gid'], 'allow_gid' => $channel['channel_allow_gid'],
'deny_cid' => $channel['channel_deny_cid'], 'deny_cid' => $channel['channel_deny_cid'],
@ -58,7 +71,7 @@ if($argc <= 3) {
]; ];
$folder = ''; $folder = '';
if(dirname($dstfile)) { if($pathname && $isadir) {
$x = attach_mkdirp($channel,$channel['channel_hash'],$arr); $x = attach_mkdirp($channel,$channel['channel_hash'],$arr);
if($x['success']) if($x['success'])
$folder = $x['data']['hash']; $folder = $x['data']['hash'];
@ -67,7 +80,6 @@ if($argc <= 3) {
for($x = 1; $x < ($argc - 1); $x ++) { for($x = 1; $x < ($argc - 1); $x ++) {
if(($argv[$x] === '-r') || ($argv[$x] === '-R')) { if(($argv[$x] === '-r') || ($argv[$x] === '-R')) {
$recursive = true;
continue; continue;
} }
@ -93,6 +105,7 @@ if($argc <= 3) {
while(($entry = readdir($dir)) !== false) { while(($entry = readdir($dir)) !== false) {
if($entry === '.' || $entry === '..') if($entry === '.' || $entry === '..')
continue; continue;
$dstfile = $basepath . '/' . $entry; $dstfile = $basepath . '/' . $entry;
if(is_dir($src . '/' . $entry)) { if(is_dir($src . '/' . $entry)) {
$r = q("select * from attach where display_path = '%s' and uid = %d limit 1", $r = q("select * from attach where display_path = '%s' and uid = %d limit 1",
@ -118,8 +131,7 @@ if($argc <= 3) {
if($x['success']) if($x['success'])
$folder = $x['data']['hash']; $folder = $x['data']['hash'];
} }
$basepath = $dstfile; dcp_recurse($channel,$src . '/' . $entry,$dstfile,$folder);
dcp_recurse($channel,$src . '/' . $entry,$basepath,$folder);
} }
else { else {
$cmd = [ 'Importfile', $channel['channel_id'], $src . '/' . $entry, $folder ]; $cmd = [ 'Importfile', $channel['channel_id'], $src . '/' . $entry, $folder ];