Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/old/vendor/magento/composer-root-update-plugin/Utils/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/magento/composer-root-update-plugin/Utils/Console.php
<?php
/**
 * Copyright © 2016 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */

namespace Magento\ComposerRootUpdatePlugin\Utils;

use Composer\IO\IOInterface;
use Composer\IO\NullIO;
use Exception;
use InvalidArgumentException;

/**
 * Singleton logger with console interaction methods
 */
class Console
{
    /**
     * Log message formatting tags
     */
    public const FORMAT_INFO = '<info>';
    public const FORMAT_COMMENT = '<comment>';
    public const FORMAT_WARN = '<warning>';
    public const FORMAT_ERROR = '<error>';

    /**
     * Verbosity levels copied from IOInterface for clarity
     */
    public const QUIET = IOInterface::QUIET;
    public const NORMAL = IOInterface::NORMAL;
    public const VERBOSE = IOInterface::VERBOSE;
    public const VERY_VERBOSE = IOInterface::VERY_VERBOSE;
    public const DEBUG = IOInterface::DEBUG;

    /**
     * @var IOInterface $io
     */
    protected $io;

    /**
     * @var string $verboseLabel
     */
    protected $verboseLabel;

    /**
     * @var bool $interactive
     */
    protected $interactive;

    /**
     * Console constructor.
     *
     * @param IOInterface|null $io
     * @param bool $interactive
     * @param string|null $verboseLabel
     * @return void
     */
    public function __construct(?IOInterface $io = null, bool $interactive = false, ?string $verboseLabel = null)
    {
        if ($io === null) {
            $this->io = new NullIO();
        } else {
            $this->io = $io;
        }
        $this->verboseLabel = $verboseLabel;
        $this->interactive = $interactive;
    }

    /**
     * Get the Composer IOInterface instance
     *
     * @return IOInterface
     */
    public function getIO(): IOInterface
    {
        return $this->io;
    }

    /**
     * Whether or not ask() should interactively ask the question or just return the default value
     *
     * @param bool $interactive
     * @return void
     */
    public function setInteractive(bool $interactive)
    {
        $this->interactive = $interactive;
    }

    /**
     * Ask the user a yes or no question and return the result
     *
     * If the console is not interactive, instead do not ask and just return the default
     *
     * @param string $question
     * @param bool $default
     * @return bool
     */
    public function ask(string $question, bool $default = false): bool
    {
        $result = $default;
        if ($this->interactive) {
            if (!$this->getIO()->isInteractive()) {
                throw new InvalidArgumentException(
                    'Interactive options cannot be used in non-interactive terminals.'
                );
            }
            $opts = $default ? 'Y,n' : 'y,N';
            $result = $this->getIO()->askConfirmation("<info>$question</info> [<comment>$opts</comment>]? ", $default);
        }
        return $result;
    }

    /**
     * Log the given message with verbosity and formatting
     *
     * @param string $message
     * @param int $verbosity
     * @param string|null $format
     * @return void
     */
    public function log(string $message, int $verbosity = Console::NORMAL, ?string $format = null)
    {
        if ($format) {
            $message = $this->formatString($message, $format);
        }
        $this->getIO()->writeError($message, true, $verbosity);
    }

    /**
     * Helper method to log the given message with <info> formatting
     *
     * @param string $message
     * @param int $verbosity
     * @return void
     */
    public function info(string $message, int $verbosity = Console::NORMAL)
    {
        $this->log($message, $verbosity, self::FORMAT_INFO);
    }

    /**
     * Helper method to log the given message with <comment> formatting
     *
     * @param string $message
     * @param int $verbosity
     * @return void
     */
    public function comment(string $message, int $verbosity = Console::NORMAL)
    {
        $this->log($message, $verbosity, self::FORMAT_COMMENT);
    }

    /**
     * Helper method to log the given message with <warning> formatting
     *
     * @param string $message
     * @param int $verbosity
     * @return void
     */
    public function warning(string $message, int $verbosity = Console::NORMAL)
    {
        $this->log($message, $verbosity, self::FORMAT_WARN);
    }

    /**
     * Label and log the given message if output is set to verbose
     *
     * A null $label will use the globally configured $verboseLabel
     *
     * @param string $message
     * @param string|null $label
     * @param int $verbosity
     * @param string|null $format
     * @return void
     */
    public function labeledVerbose(
        string $message,
        ?string $label = null,
        int $verbosity = Console::VERBOSE,
        ?string $format = null
    ) {
        if ($format) {
            $message = $this->formatString($message, $format);
        }
        if ($label === null) {
            $label = $this->verboseLabel;
        }
        if ($label) {
            $message = " <comment>[</comment>$label<comment>]</comment> $message";
        }
        $this->log($message, $verbosity);
    }

    /**
     * Formats with <error> and logs to Console::QUIET followed by the exception's message at Console::NORMAL
     *
     * @param string $message
     * @param Exception|null $exception
     * @return void
     */
    public function error(string $message, ?Exception $exception = null)
    {
        $this->log($message, self::QUIET, self::FORMAT_ERROR);
        if ($exception) {
            $this->log($exception->getMessage());
        }
    }

    /**
     * Sets the label to apply to labeledVerbose() messages if not overridden
     *
     * @param string $verboseLabel
     * @return void
     */
    public function setVerboseLabel(string $verboseLabel)
    {
        $this->verboseLabel = $verboseLabel;
    }

    /**
     * Helper function to wrap a string in the given format tag
     *
     * @param string $str
     * @param string $formatTag
     * @return string
     */
    public function formatString(string $str, string $formatTag): string
    {
        $formatClose = str_replace('<', '</', $formatTag);
        return $formatTag . $str . $formatClose;
    }
}

Spamworldpro Mini