Beispiel #1
0
{
    $console->writeln("usage:")->writeln("    \$ curl setup.goodby.org/<vendor-name>/<package-name> | sh")->writeln("")->writeln("    vendor-name  : Your github account name.")->writeln("                   a-z, 0-9 and dash(-) is available.")->writeln("    package-name : Your github repository name.")->writeln("                   a-z, 0-9 and dash(-) is available.")->writeln("")->writeln("example:")->writeln("    \$ curl setup.goodby.org/alice-brown/csv-parser | sh");
}
$console = new Console();
if (isset($_SERVER['REQUEST_URI']) === false) {
    show_help($console);
    $console->quit();
}
$pathinfo = trim($_SERVER['REQUEST_URI'], '/');
if (!preg_match('#^(?P<vendor_name>[^/]+)/(?P<package_name>[^/]+)$#', $pathinfo, $matches)) {
    $console->writeln("Invalid request.");
    show_help($console);
    $console->quit();
}
$vendorName = new Name($matches['vendor_name']);
$packageName = new Name($matches['package_name']);
if ($vendorName->isValid() === false) {
    $console->writeln("Invalid vendor name: " . $vendorName->getName());
    show_help($console);
    $console->quit();
}
if ($packageName->isValid() === false) {
    $console->writeln("Invalid package name: " . $packageName->getName());
    show_help($console);
    $console->quit();
}
$substitutionMap = array('__vendor-name__' => $vendorName->asDashed(), '__vendor_name__' => $vendorName->asLowerSnake(), '__VENDOR_NAME__' => $vendorName->asUpperSnake(), '__VendorName__' => $vendorName->asCamel(), '__package-name__' => $packageName->asDashed(), '__package_name__' => $packageName->asLowerSnake(), '__PACKAGE_NAME__' => $packageName->asUpperSnake(), '__PackageName__' => $packageName->asCamel());
$commands = file_get_contents(__DIR__ . '/setup.sh');
$commands = str_replace(array_keys($substitutionMap), array_values($substitutionMap), $commands);
$console->execute($commands);
$console->quit();