// Prepare list. $list = array_map(function ($release) { return basename(rtrim($release, '/')); }, $list); $releases = []; // Releases list. // Collect releases based on .dep/releases info. // Other will be ignored. if (run('if [ -f .dep/releases ]; then echo "true"; fi')->toBool()) { $keepReleases = get('keep_releases'); if ($keepReleases === -1) { $csv = run('cat .dep/releases'); } else { $csv = run("tail -n " . ($keepReleases + 5) . " .dep/releases"); } $metainfo = Csv::parse($csv); for ($i = count($metainfo) - 1; $i >= 0; --$i) { if (is_array($metainfo[$i]) && count($metainfo[$i]) >= 2) { list($date, $release) = $metainfo[$i]; $index = array_search($release, $list, true); if ($index !== false) { $releases[] = $release; unset($list[$index]); } } } } return $releases; }); /** * Return release path.