From 52a70e9792ee92a7788e0b89c72c7fe18261cdbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20R=C3=BCegg?= Date: Mon, 18 Sep 2023 21:38:32 +0200 Subject: [PATCH] Fix the case when a file (rather than a directory) is given as an argument --- src/PharBuilder.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/PharBuilder.php b/src/PharBuilder.php index adbaacf..2eb818a 100644 --- a/src/PharBuilder.php +++ b/src/PharBuilder.php @@ -103,9 +103,15 @@ public function build($filename, $stub) { $phar->setSignatureAlgorithm($this->selectSignatureType()); } - $basedir = $this->basedir ? $this->basedir : $this->directories[0]; + $basedir = $this->basedir ?: $this->directories[0]; foreach($this->directories as $directory) { - $phar->buildFromIterator($this->scanner->__invoke($directory), $basedir); + if (file_exists("$directory/")) { + $phar->buildFromIterator($this->scanner->__invoke($directory), $basedir); + } else { + $comparator = new PathComparator(array($basedir, $directory)); + $localName = str_replace($comparator->getCommonBase().'/', '', $directory); + $phar->addFile($directory, $localName); + } } if ($this->compression !== \Phar::NONE) {