#!/usr/bin/env php setTagline('simple calculator example'); $args->setSynopsis(<<setName('add') ->setExamples('**add** __n__ ...') ->setSynopsis('Compute the sum of a list of numbers.') ->setArguments( array( array( 'name' => 'numbers', 'wildcard' => true, ), )); $mul_workflow = id(new PhutilArgumentWorkflow()) ->setName('mul') ->setExamples('**mul** __n__ ...') ->setSynopsis('Compute the product of a list of numbers.') ->setArguments( array( array( 'name' => 'numbers', 'wildcard' => true, ), )); $flow = $args->parseWorkflows( array( $add_workflow, $mul_workflow, new PhutilHelpArgumentWorkflow(), )); $nums = $args->getArg('numbers'); if (empty($nums)) { echo "You must provide one or more numbers!\n"; exit(1); } foreach ($nums as $num) { if (!is_numeric($num)) { echo "Number '{$num}' is not numeric!\n"; exit(1); } } switch ($flow->getName()) { case 'add': echo array_sum($nums)."\n"; break; case 'mul': echo array_product($nums)."\n"; break; }