diff --git a/bin/update-metadata.php b/bin/update-metadata.php index 1247ce1761416f918c299da3f1ecf3f97a2d468d..cfa2c9419ab48286aaf5404e414b26bb1b9cdb02 100644 --- a/bin/update-metadata.php +++ b/bin/update-metadata.php @@ -30,11 +30,7 @@ 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 @@ -54,9 +50,7 @@ $longopts = array( "metadata-idp-file:", "metadata-sp-file:", "min-idp-count:", - "min-idp-quota:", "min-sp-count:", - "min-sp-quota:", "language:", "verbose", "help", @@ -91,36 +85,28 @@ if (!isset($options['metadata-idp-file'])) { } if (isset($options['min-sp-count'])) { - if (!is_numeric($options['min-sp-count'])) { - exit("Exiting: invalid value for --min-sp-count parameter\n"); - } 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 { + if (preg_match('/^(\d+)%$/', $options['min-sp-count'], $matches)) { require_once($metadataSPFile); $SPCount = count($metadataSProviders); - $minSPCount = floor($SPCount * $options['min-sp-quota'] / 100); + $minSPCount = floor($SPCount * $matches[1] / 100); + } elseif (preg_match('/^\d+$/', $options['min-sp-count'])) { + $minSPCount = $options['min-sp-count']; + } else { + exit("Exiting: invalid value for --min-sp-count parameter\n"); } } else { $minSPCount = 0; } if (isset($options['min-idp-count'])) { - if (!is_numeric($options['min-idp-count'])) { - exit("Exiting: invalid value for --min-idp-count parameter\n"); - } 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 { + if (preg_match('/^(\d+)%$/', $options['min-idp-count'], $matches)) { require_once($metadataIDPFile); $IDPCount = count($metadataIDProviders); - $minIDPCount = floor($IDPCount * $options['min-idp-quota'] / 100); + $minIDPCount = floor($IDPCount * $matches[1] / 100); + } elseif (preg_match('/^\d+$/', $options['min-idp-count'])) { + $minIDPCount = $options['min-idp-count']; + } else { + exit("Exiting: invalid value for --min-idp-count parameter\n"); } } else { $minIDPCount = 0;