mirror of
https://github.com/gantry/gantry5.git
synced 2026-09-03 20:52:53 -05:00
74 lines
1.5 KiB
PHP
74 lines
1.5 KiB
PHP
<?php
|
|
|
|
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;
|
|
}
|
|
|
|
$filename = $fileInfo->getFilename();
|
|
$list[$filename] = [
|
|
'file' => $filename,
|
|
'size' => $fileInfo->getSize(),
|
|
'date' => $fileInfo->getMTime()
|
|
];
|
|
}
|
|
|
|
ksort($list);
|
|
|
|
$data = [
|
|
'count' => count($list),
|
|
'commit' => $commit,
|
|
'commit_short' => substr($commit, 0, 9),
|
|
'date' => time(),
|
|
'files' => array_values($list)
|
|
];
|
|
|
|
file_put_contents("{$folder}/map.json", json_encode($data, JSON_PRETTY_PRINT));
|
|
}
|
|
}
|