<?php
'max-depth' => 1,
'human-readable' => TRUE, 'x' => TRUE,
'./a/directory'
),
'n' => 1000,
'c' => 10,
'http://w...content-available-to-author-only...e.com/'
),
'misc.sh' => array("red","green","blue","yellow") );
function build_shell_args
(Array $options = array(), $equals="=") {
static $ok_chars = '/^[-0-9a-z_:\/\.]+$/i';
foreach ($options as $key => $val) if (!is_null($val) && $val !== FALSE) {
$arg = '';
$key_len = 0;
$arg .= '-'.(($key_len > 1) ? '-' : '').$key;
}
if($val !== TRUE) {
if((string) $val !== (string) (int) $val) {
}
if($key_len != 0)
$arg .= $equals;
$arg .= $val;
}
$args[] = $arg;
}
}
foreach($tests as $script => $args)
PD9waHAKCiR0ZXN0cyA9IGFycmF5KAoJJ2R1JyA9PiBhcnJheSgKCQknbWF4LWRlcHRoJyA9PiAxLAoJCSdodW1hbi1yZWFkYWJsZScgPT4gVFJVRSwgJ3gnID0+IFRSVUUsCgkJJy4vYS9kaXJlY3RvcnknCgkpLAoJJ2FiJyA9PiBhcnJheSgKCQknbicgPT4gMTAwMCwKCQknYycgPT4gMTAsCgkJJ2h0dHA6Ly93Li4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5lLmNvbS8nCgkpLAoJJ21pc2Muc2gnID0+IGFycmF5KCJyZWQiLCJncmVlbiIsImJsdWUiLCJ5ZWxsb3ciKQopOwoKZnVuY3Rpb24gYnVpbGRfc2hlbGxfYXJncyhBcnJheSAkb3B0aW9ucyA9IGFycmF5KCksICRlcXVhbHM9Ij0iKSB7CgkKCXN0YXRpYyAkb2tfY2hhcnMgPSAnL15bLTAtOWEtel86XC9cLl0rJC9pJzsKCQoJJGFyZ3MgPSBhcnJheSgpOwoJCglmb3JlYWNoICgkb3B0aW9ucyBhcyAka2V5ID0+ICR2YWwpIGlmICghaXNfbnVsbCgkdmFsKSAmJiAkdmFsICE9PSBGQUxTRSkgewoJCQoJCSRhcmcgICAgID0gJyc7CgkJJGtleV9sZW4gPSAwOwoJCQoJCWlmKGlzX3N0cmluZygka2V5KSAmJiAoJGtleV9sZW4gPSBzdHJsZW4oJGtleSkpID4gMCkgewoJCQkKCQkJaWYoIXByZWdfbWF0Y2goJG9rX2NoYXJzLCAka2V5KSkKCQkJCSRrZXkgPSBlc2NhcGVzaGVsbGFyZygka2V5KTsKCQkJCgkJCSRhcmcgLj0gJy0nLigoJGtleV9sZW4gPiAxKSA/ICctJyA6ICcnKS4ka2V5OwoJCX0KCQkKCQlpZigkdmFsICE9PSBUUlVFKSB7CgkJCQoJCQlpZigoc3RyaW5nKSAkdmFsICE9PSAoc3RyaW5nKSAoaW50KSAkdmFsKSB7CgkJCQkkdmFsID0gcHJpbnRfcigkdmFsLCBUUlVFKTsKCQkJCQoJCQkJaWYoIXByZWdfbWF0Y2goJG9rX2NoYXJzLCAkdmFsKSkKCQkJCQkkdmFsID0gZXNjYXBlc2hlbGxhcmcoJHZhbCk7CgkJCQkKCQkJfQoJCQkKCQkJaWYoJGtleV9sZW4gIT0gMCkKCQkJCSRhcmcgLj0gJGVxdWFsczsKCQkJCgkJCSRhcmcgLj0gJHZhbDsKCQkJCgkJfQoJCQoJCWlmKCFlbXB0eSgkYXJnKSkKCQkJJGFyZ3NbXSA9ICRhcmc7CgkJCgl9CgkKCXJldHVybiBpbXBsb2RlKCcgJywgJGFyZ3MpOwp9Cgpmb3JlYWNoKCR0ZXN0cyBhcyAkc2NyaXB0ID0+ICRhcmdzKQoJZWNobyBlc2NhcGVzaGVsbGNtZCgiJHNjcmlwdCAiLmJ1aWxkX3NoZWxsX2FyZ3MoJGFyZ3MpKS4iXG4iOw==