diff --git a/bin/update-metadata.php b/bin/update-metadata.php index da3a525e3894612b2b6a5b345f4fadb074abbab7..1247ce1761416f918c299da3f1ecf3f97a2d468d 100644 --- a/bin/update-metadata.php +++ b/bin/update-metadata.php @@ -30,7 +30,11 @@ Argument Description --metadata-idp-file File containing Service Providers --metadata-sp-file File containing Identity Providers --min-idp-count Minimum expected number of IdPs in metadata +--min-idp-quota Minimum expected number of IdPs in metadata, + as a percentage of current number --min-sp-count Minimum expected number of SPs in metadata +--min-sp-quota Minimum expected number of SPs in metadata, + as a percentage of current number --language Language locale, e.g. 'en', 'jp', ... --verbose | -v Verbose mode --help | -h Print this man page @@ -50,7 +54,9 @@ $longopts = array( "metadata-idp-file:", "metadata-sp-file:", "min-idp-count:", + "min-idp-quota:", "min-sp-count:", + "min-sp-quota:", "language:", "verbose", "help", @@ -90,6 +96,14 @@ if (isset($options['min-sp-count'])) { } else { $minSPCount = $options['min-sp-count']; } +} elseif (isset($options['min-sp-quota'])) { + if (!is_numeric($options['min-sp-quota'])) { + exit("Exiting: invalid value for --min-sp-quota parameter\n"); + } else { + require_once($metadataSPFile); + $SPCount = count($metadataSProviders); + $minSPCount = floor($SPCount * $options['min-sp-quota'] / 100); + } } else { $minSPCount = 0; } @@ -100,6 +114,14 @@ if (isset($options['min-idp-count'])) { } else { $minIDPCount = $options['min-idp-count']; } +} elseif (isset($options['min-idp-quota'])) { + if (!is_numeric($options['min-idp-quota'])) { + exit("Exiting: invalid value for --min-idp-quota parameter\n"); + } else { + require_once($metadataIDPFile); + $IDPCount = count($metadataIDProviders); + $minIDPCount = floor($IDPCount * $options['min-idp-quota'] / 100); + } } else { $minIDPCount = 0; }