| <?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; |
| } |