Skip to content

Instantly share code, notes, and snippets.

@krakjoe

krakjoe/gen.php Secret

Created May 2, 2016 16:24
Show Gist options
  • Save krakjoe/636cf9b60db456c34a41a242a94727ca to your computer and use it in GitHub Desktop.
Save krakjoe/636cf9b60db456c34a41a242a94727ca to your computer and use it in GitHub Desktop.
thing for generating package.xml
<?php
$version = $argv[1];
$format = [
"SCRIPTS" => "\t<file name=\"%s\" role=\"doc\" />",
"TESTS" => "\t<file name=\"%s\" role=\"test\" />",
];
$extensions = [
"SCRIPTS" => ["php"],
"TESTS" => ["phpt", "inc"],
];
$source = file_get_contents(sprintf("%s/template.xml", dirname(__FILE__)));
foreach ([
"SCRIPTS" => "scripts",
"TESTS" => "tests",
] as $target => $dir) {
$found = [];
foreach (scandir($dir) as $file) {
if ($file == "." || $file == "..")
continue;
$explode = preg_split("~\.~", $file);
$explode = $explode[count($explode)-1];
if (in_array($explode, $extensions[$target])) {
$found[] = sprintf(
$format[$target], "{$dir}/{$file}");
}
}
$source = str_replace(
sprintf("{%s}", $target),
implode("\n", $found), $source);
}
$source = str_replace([
"{DATE}",
"{TIME}",
"{VERSION}"
], [
date("Y-m-d"),
date("H:m:s"),
$version
], $source);
echo $source;
?>
<?xml version="1.0" encoding="UTF-8"?>
<package packagerversion="1.9.4" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd">
<name>ast</name>
<channel>pecl.php.net</channel>
<summary>PHP AST</summary>
<description>Extension exposing PHP 7 abstract syntax tree</description>
<lead>
<name>Nikita Popov</name>
<user>nikic</user>
<email>nikic@php.net</email>
<active>yes</active>
</lead>
<date>{DATE}</date>
<time>{TIME}</time>
<version>
<release>{VERSION}</release>
<api>{VERSION}</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.php.net/license">PHP License</license>
<notes>
non-empty-notes
</notes>
<contents>
<dir name="/">
{SCRIPTS}
{TESTS}
<file name="config.m4" role="src" />
<file name="config.w32" role="src" />
<file name="LICENSE" role="doc" />
<file name="ast.c" role="src" />
<file name="ast_data.c" role="src" />
<file name="ast_str_defs.h" role="src" />
<file name="php_ast.h" role="src" />
<file name="ast_stub.php" role="doc" />
<file name="util.php" role="doc" />
<file name="README.md" role="doc" />
</dir>
</contents>
<dependencies>
<required>
<php>
<min>7.0.0RC5</min>
</php>
<pearinstaller>
<min>1.4.0b1</min>
</pearinstaller>
</required>
</dependencies>
<providesextension>ast</providesextension>
<extsrcrelease />
</package>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment