Index: src/XF/Service/AddOn/ReleaseBuilder.php
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/XF/Service/AddOn/ReleaseBuilder.php (date 1536138284000)
+++ src/XF/Service/AddOn/ReleaseBuilder.php (date 1536144638000)
@@ -22,7 +22,7 @@
protected $tempFile;
/**
- * @var Filesystem
+ * @var \RecursiveIteratorIterator|\SplFileInfo[]
*/
protected $localFs;
@@ -195,8 +195,10 @@
protected function prepareFsAdapters()
{
- $local = new Local($this->buildRoot);
- $this->localFs = new Filesystem($local);
+ $this->localFs = new \RecursiveIteratorIterator(
+ new \RecursiveDirectoryIterator($this->buildRoot, \FilesystemIterator::SKIP_DOTS),
+ \RecursiveIteratorIterator::SELF_FIRST
+ );
$this->tempFile = File::getTempFile();
@@ -394,29 +396,31 @@
// NOTE: any files skipped by generateHashes() won't appear in this loop...
- foreach ($localFs->listContents('', true) AS $info)
+ foreach ($localFs AS $file)
{
// skip hidden dot files, e.g. .DS_Store, .gitignore etc.
- if ($this->isExcludedFileName($info['basename']))
+ if ($this->isExcludedFileName($file->getBasename()))
{
continue;
}
- if ($info['type'] == 'dir')
+ $localName = substr($file->getPathname(), strlen($this->buildRoot));
+
+ if ($file->isDir())
{
- $info['path'] .= '/';
- $zipArchive->addEmptyDir($info['path']);
+ $localName .= '/';
+ $zipArchive->addEmptyDir($localName);
$perm = 040755 << 16; // dir: 0755
}
else
{
- $zipArchive->addFile($this->buildRoot . '/' . $info['path'], $info['path']);
+ $zipArchive->addFile($file->getPathname(), $localName);
$perm = 0100644 << 16; // file: 0644
}
if (method_exists($zipArchive, 'setExternalAttributesName'))
{
- $zipArchive->setExternalAttributesName($info['path'], \ZipArchive::OPSYS_UNIX, $perm);
+ $zipArchive->setExternalAttributesName($localName, \ZipArchive::OPSYS_UNIX, $perm);
}
}