function main() { $args = $_SERVER['argv']; $location = null; switch (count($args)) { case 2: $location = $args[1]; break; default: echo "Usage: backdate-maintainers.php location\n"; exit(1); } // Get the library data, so that it can be updated with maintainers. // In case you're wondering why the result from get_for_version doesn't // use 'key' as its key, it's for historical reasons I think, might be // fixable. $libraries = BoostLibraries::from_xml_file(__DIR__ . '/../doc/libraries.xml'); $unknown_libs = array(); foreach (BoostSuperProject::run_process("cd \"{$location}\" && git tag") as $tag) { if (preg_match('@^boost-1\\.\\d+\\.\\d+$@', $tag)) { $library_details = $libraries->get_for_version($tag, null, 'BoostLibraries::filter_all'); $libs_index = array(); foreach ($library_details as $index => $details) { $libs_index[$details['key']] = $index; } foreach (BoostMaintainers::read_from_text(git_file($location, $tag, 'libs/maintainers.txt'))->maintainers as $key => $lib_maintainers) { if (isset($libs_index[$key])) { $index = $libs_index[$key]; $library_details[$index]['maintainers'] = $lib_maintainers; } else { $unknown_libs[$key][] = $tag; } } $update = array_map(function ($lib) { return new BoostLibrary($lib); }, $library_details); $libraries->update($tag, $update); } } file_put_contents(dirname(__FILE__) . '/../doc/libraries.xml', $libraries->to_xml()); $names = array_keys($unknown_libs); sort($names); echo "Unable to find libraries:\n"; foreach ($names as $lib) { echo "{$lib} from: " . implode(', ', $unknown_libs[$lib]) . "\n"; } }
function main() { $args = $_SERVER['argv']; if (count($args) != 3) { echo "Usage: update-maintainers.php location version\n"; exit(1); } $location = $args[1]; $version = $args[2]; $libraries = BoostLibraries::from_xml_file(__DIR__ . '/../doc/libraries.xml'); $unknown_libs = array(); $maintainers = BoostMaintainers::read_from_text(file($location . '/libs/maintainers.txt')); $library_details = $libraries->get_for_version($version, null); $libs_index = array(); foreach ($library_details as $index => $details) { if (isset($details['maintainers'])) { $maintainers->update_maintainer($details['key'], $details['maintainers']); } } file_put_contents($location . '/libs/maintainers.txt', $maintainers->write_to_text()); }
function main() { $options = BoostSiteTools\CommandLineOptions::parse("Usage: {} location version"); if (count($options->positional) != 2) { echo $options->usage_message(); exit(1); } $location = $options->positional[0]; $version = $options->positional[1]; $libraries = BoostLibraries::from_xml_file(__DIR__ . '/../doc/libraries.xml'); $unknown_libs = array(); $maintainers = BoostMaintainers::read_from_text(file($location . '/libs/maintainers.txt')); // TODO: Want to include hidden libraries here. $library_details = $libraries->get_for_version($version, null); $libs_index = array(); foreach ($library_details as $index => $details) { if (isset($details['maintainers'])) { $maintainers->update_maintainer($details['key'], $details['maintainers']); } } file_put_contents($location . '/libs/maintainers.txt', $maintainers->write_to_text()); }