From 035449e4a3f243dcaa43c34259d489c31d9c7ebf Mon Sep 17 00:00:00 2001 From: zotlabs Date: Thu, 17 Aug 2017 23:43:54 -0700 Subject: util/dcp "(DAV-copy) copy file from local system to Hubzilla/red DAV" --- util/dcp | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100755 util/dcp (limited to 'util/dcp') diff --git a/util/dcp b/util/dcp new file mode 100755 index 000000000..86c25259f --- /dev/null +++ b/util/dcp @@ -0,0 +1,73 @@ +#!/usr/bin/env php +' . PHP_EOL; + exit(1); +} + +require_once('include/cli_startup.php'); +require_once('include/attach.php'); + +cli_startup(); + +$srcfile = $argv[1]; +$dstfile = $argv[2]; + +if($argc != 3) { + echo "Usage: " . $argv[0] . ' source destination' . "\n"; + echo 'Always run from the toplevel web directory.' . "\n"; + echo 'destination should begin with store/$nickname/desired/path/filename or $nickname/desired/path/filename' . "\n"; + echo 'destination must end with the destination filename (not a directory name).' . "\n"; + echo 'Example: util/dcp /etc/motd store/joe/etc/motd' . "\n"; + exit; +} + + + + if(strpos($dstfile,'store/') === 0) + $dstfile = substr($dstfile,6); + + $nick = substr($dstfile,0,strpos($dstfile,'/')); + + $dstfile = substr($dstfile,strlen($nick)+1); + + $channel = channelx_by_nick($nick); + if(! $channel) + return; + + + $arr = [ + 'pathname' => dirname($dstfile), + 'allow_cid' => $channel['channel_allow_cid'], + 'allow_gid' => $channel['channel_allow_gid'], + 'deny_cid' => $channel['channel_deny_cid'], + 'deny_gid' => $channel['channel_deny_gid'], + ]; + + $folder = ''; + if(dirname($dstfile)) { + $x = attach_mkdirp($channel,$channel['channel_hash'],$arr); + if($x['success']) + $folder = $x['data']['hash']; + } + + $arr = [ + 'src' => $srcfile, + 'filename' => basename($srcfile), + 'hash' => random_string(), + 'allow_cid' => $channel['channel_allow_cid'], + 'allow_gid' => $channel['channel_allow_gid'], + 'deny_cid' => $channel['channel_deny_cid'], + 'deny_gid' => $channel['channel_deny_gid'], + 'preserve_original' => true, + ]; + + if($folder) + $arr['folder'] = $folder; + + attach_store($channel,$channel['channel_hash'],'import',$arr); + + -- cgit v1.2.3