aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/scssphp/scssphp/src/Logger
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/scssphp/scssphp/src/Logger')
-rw-r--r--vendor/scssphp/scssphp/src/Logger/LoggerInterface.php48
-rw-r--r--vendor/scssphp/scssphp/src/Logger/QuietLogger.php29
-rw-r--r--vendor/scssphp/scssphp/src/Logger/StreamLogger.php62
3 files changed, 139 insertions, 0 deletions
diff --git a/vendor/scssphp/scssphp/src/Logger/LoggerInterface.php b/vendor/scssphp/scssphp/src/Logger/LoggerInterface.php
new file mode 100644
index 000000000..7c0a2f76e
--- /dev/null
+++ b/vendor/scssphp/scssphp/src/Logger/LoggerInterface.php
@@ -0,0 +1,48 @@
+<?php
+
+/**
+ * SCSSPHP
+ *
+ * @copyright 2012-2020 Leaf Corcoran
+ *
+ * @license http://opensource.org/licenses/MIT MIT
+ *
+ * @link http://scssphp.github.io/scssphp
+ */
+
+namespace ScssPhp\ScssPhp\Logger;
+
+/**
+ * Interface implemented by loggers for warnings and debug messages.
+ *
+ * The official Sass implementation recommends that loggers report the
+ * messages immediately rather than waiting for the end of the
+ * compilation, to provide a better debugging experience when the
+ * compilation does not end (error or infinite loop after the warning
+ * for instance).
+ */
+interface LoggerInterface
+{
+ /**
+ * Emits a warning with the given message.
+ *
+ * If $deprecation is true, it indicates that this is a deprecation
+ * warning. Implementations should surface all this information to
+ * the end user.
+ *
+ * @param string $message
+ * @param bool $deprecation
+ *
+ * @return void
+ */
+ public function warn($message, $deprecation = false);
+
+ /**
+ * Emits a debugging message.
+ *
+ * @param string $message
+ *
+ * @return void
+ */
+ public function debug($message);
+}
diff --git a/vendor/scssphp/scssphp/src/Logger/QuietLogger.php b/vendor/scssphp/scssphp/src/Logger/QuietLogger.php
new file mode 100644
index 000000000..ad7c07537
--- /dev/null
+++ b/vendor/scssphp/scssphp/src/Logger/QuietLogger.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * SCSSPHP
+ *
+ * @copyright 2012-2020 Leaf Corcoran
+ *
+ * @license http://opensource.org/licenses/MIT MIT
+ *
+ * @link http://scssphp.github.io/scssphp
+ */
+
+namespace ScssPhp\ScssPhp\Logger;
+
+/**
+ * A logger that silently ignores all messages.
+ *
+ * @final
+ */
+class QuietLogger implements LoggerInterface
+{
+ public function warn($message, $deprecation = false)
+ {
+ }
+
+ public function debug($message)
+ {
+ }
+}
diff --git a/vendor/scssphp/scssphp/src/Logger/StreamLogger.php b/vendor/scssphp/scssphp/src/Logger/StreamLogger.php
new file mode 100644
index 000000000..7db7cc189
--- /dev/null
+++ b/vendor/scssphp/scssphp/src/Logger/StreamLogger.php
@@ -0,0 +1,62 @@
+<?php
+
+/**
+ * SCSSPHP
+ *
+ * @copyright 2012-2020 Leaf Corcoran
+ *
+ * @license http://opensource.org/licenses/MIT MIT
+ *
+ * @link http://scssphp.github.io/scssphp
+ */
+
+namespace ScssPhp\ScssPhp\Logger;
+
+/**
+ * A logger that prints to a PHP stream (for instance stderr)
+ *
+ * @final
+ */
+class StreamLogger implements LoggerInterface
+{
+ private $stream;
+ private $closeOnDestruct;
+
+ /**
+ * @param resource $stream A stream resource
+ * @param bool $closeOnDestruct If true, takes ownership of the stream and close it on destruct to avoid leaks.
+ */
+ public function __construct($stream, $closeOnDestruct = false)
+ {
+ $this->stream = $stream;
+ $this->closeOnDestruct = $closeOnDestruct;
+ }
+
+ /**
+ * @internal
+ */
+ public function __destruct()
+ {
+ if ($this->closeOnDestruct) {
+ fclose($this->stream);
+ }
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function warn($message, $deprecation = false)
+ {
+ $prefix = ($deprecation ? 'DEPRECATION ' : '') . 'WARNING: ';
+
+ fwrite($this->stream, $prefix . $message . "\n\n");
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function debug($message)
+ {
+ fwrite($this->stream, $message . "\n");
+ }
+}