1
0
mirror of https://github.com/laravel/valet.git synced 2026-02-05 08:30:07 +01:00
Files
laravel-valet/cli/includes/helpers.php

138 lines
2.3 KiB
PHP

<?php
use Illuminate\Container\Container;
use Symfony\Component\Process\Process;
/**
* Define the ~/.valet path as a constant.
*/
define('VALET_HOME_PATH', $_SERVER['HOME'].'/.valet');
/**
* Output the given text to the console.
*
* @param string $output
* @return void
*/
function info($output)
{
output('<info>'.$output.'</info>');
}
/**
* Output the given text to the console.
*
* @param string $output
* @return void
*/
function warning($output)
{
output('<fg=red>'.$output.'</>');
}
/**
* Output the given text to the console.
*
* @param string $output
* @return void
*/
function output($output)
{
if (isset($_ENV['APP_ENV']) && $_ENV['APP_ENV'] === 'testing') {
return;
}
(new Symfony\Component\Console\Output\ConsoleOutput)->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.');
}
}
if (! function_exists('tap')) {
/**
* 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'];
}