blob: 4538dca99fbc496761638a5980b15db2efe4d690 [file]
<?php
/*******************************************************************************
* Copyright (c) 2023 Eclipse Foundation and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*******************************************************************************/
function getSpecificationProcessVersions() {
$versions = array();
foreach(glob("content/efsp_v*.html") as $file) {
$matches = array();
if (preg_match('/(?<version>\d\.\d(?<minor>\.\d)?).html$/',$file, $matches)) {
$version = $matches['version'];
if (!$matches['minor']) $version .= '.0';
$versions[$version] = $matches['version'];
}
}
ksort($versions);
return $versions;
}
function getCurrentSpecificationProcessVersion() {
return file_get_contents(dirname(__FILE__) . '/../CURRENT');
}
function getSpecificationProcessLink($version) {
return "/projects/efsp?version={$version}";
}
function getSpecificationProcessDiffLink($version) {
return "/projects/efsp/diff.php?version={$version}";
}
function specificationProcessLinks($callback) {
foreach(getSpecificationProcessVersions() as $version) {
call_user_func($callback, $version, getSpecificationProcessLink($version));
}
}
function specificationProcessDiffLinks($callback) {
foreach(getSpecificationProcessVersions() as $version) {
call_user_func($callback, $version, getSpecificationProcessDiffLink($version));
}
}
function getEfspFile($version, $pattern = "content/efsp_v{version}.html") {
if (isset($version) && preg_match('/^\d\.\d(?:\.\d)?$/',$version)) {
$fileName = str_replace("{version}", $version, $pattern);
if (file_exists($fileName)) {
return $fileName;
}
}
$version = getCurrentSpecificationProcessVersion();
$fileName = str_replace("{version}", $version, $pattern);
if (file_exists($fileName))
return $fileName;
return null;
}