writeln($output); } /** * Resolve the given class from the container. * * @param string $class * @return mixed */ function resolve($class) { return Container::getInstance()->make($class); } /** * Swap the given class implementation in the container. * * @param string $class * @param mixed $instance * @return void */ function swap($class, $instance) { Container::getInstance()->instance($class, $instance); } /** * Retry the given function N times. * * @param int $retries * @param callable $retries * @param int $sleep * @return mixed */ function retry($retries, $fn, $sleep = 0) { beginning: try { return $fn(); } catch (Exception $e) { if (! $retries) { throw $e; } $retries--; if ($sleep > 0) { usleep($sleep * 1000); } goto beginning; } } /** * Verify that the script is currently running as "sudo". * * @return void */ function should_be_sudo() { if (! isset($_SERVER['SUDO_USER'])) { throw new Exception('This command must be run with sudo.'); } } /** * Tap the given value. * * @param mixed $value * @param callable $callback * @return mixed */ function tap($value, callable $callback) { $callback($value); return $value; } /** * Get the user */ function user() { if (! isset($_SERVER['SUDO_USER'])) { return $_SERVER['USER']; } return $_SERVER['SUDO_USER']; }