Files

74 lines
1.5 KiB
PHP
Raw Permalink Normal View History

<?php
2022-01-19 10:55:56 +02:00
use Phing\Task;
class JsonMapTask extends Task {
/** @var string|null */
private $folder;
/** @var string|null */
private $commit;
/**
* @param string $folder
* @return void
*/
public function setFolder($folder)
{
$this->folder = $folder;
}
/**
* @param string $commit
* @return void
*/
public function setCommit($commit)
{
$this->commit = $commit;
}
/**
* @return void
*/
public function init()
{
}
/**
* @return void
*/
public function main()
{
$folder = $this->folder;
$commit = $this->commit;
$list = [];
$iterator = new DirectoryIterator($folder);
/** @var SplFileInfo $fileInfo */
foreach ($iterator as $fileInfo) {
if ($fileInfo->isDot() || $fileInfo->isDir()) {
continue;
}
2021-09-30 10:15:12 +03:00
$filename = $fileInfo->getFilename();
$list[$filename] = [
'file' => $filename,
'size' => $fileInfo->getSize(),
'date' => $fileInfo->getMTime()
];
}
2021-09-28 10:49:17 +03:00
ksort($list);
$data = [
'count' => count($list),
'commit' => $commit,
'commit_short' => substr($commit, 0, 9),
'date' => time(),
2021-09-28 10:49:17 +03:00
'files' => array_values($list)
];
file_put_contents("{$folder}/map.json", json_encode($data, JSON_PRETTY_PRINT));
}
}