| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package org.apache.nlpcraft.common.ansi |
| |
| import org.apache.nlpcraft.common._ |
| |
| /** |
| * Scala 2.13 shim for `scala.io.AnsiColor`. |
| */ |
| trait NCAnsiColor { |
| private final val BLACK = "\u001b[30m" |
| private final val RED = "\u001b[31m" |
| private final val GREEN = "\u001b[32m" |
| private final val YELLOW = "\u001b[33m" |
| private final val BLUE = "\u001b[34m" |
| private final val MAGENTA = "\u001b[35m" |
| private final val CYAN = "\u001b[36m" |
| private final val WHITE = "\u001b[37m" |
| private final val BLACK_B = "\u001b[40m" |
| private final val RED_B = "\u001b[41m" |
| private final val GREEN_B = "\u001b[42m" |
| private final val YELLOW_B = "\u001b[43m" |
| private final val BLUE_B = "\u001b[44m" |
| private final val MAGENTA_B = "\u001b[45m" |
| private final val CYAN_B = "\u001b[46m" |
| private final val WHITE_B = "\u001b[47m" |
| private final val RESET = "\u001b[0m" |
| private final val BOLD = "\u001b[1m" |
| private final val UNDERLINED = "\u001b[4m" |
| private final val BLINK = "\u001b[5m" |
| private final val REVERSED = "\u001b[7m" |
| private final val INVISIBLE = "\u001b[8m" |
| |
| // Enabled by default. |
| // NOTE: it's not static as it can be changed at runtime. |
| private final val PROP = "NLPCRAFT_ANSI_COLOR_DISABLED" |
| |
| def isEnabled: Boolean = !U.isSysEnvTrue(PROP) |
| |
| def ansiBlackFg: String = if (isEnabled) BLACK else "" |
| def ansiBlackBg: String = if (isEnabled) BLACK_B else "" |
| def ansiRedFg: String = if (isEnabled) RED else "" |
| def ansiRedBg: String = if (isEnabled) RED_B else "" |
| def ansiGreenFg: String = if (isEnabled) GREEN else "" |
| def ansiGreenBg: String = if (isEnabled) GREEN_B else "" |
| def ansiYellowFg: String = if (isEnabled) YELLOW else "" |
| def ansiYellowBg: String = if (isEnabled) YELLOW_B else "" |
| def ansiBlueFg: String = if (isEnabled) BLUE else "" |
| def ansiBlueBg: String = if (isEnabled) BLUE_B else "" |
| def ansiMagentaFg: String = if (isEnabled) MAGENTA else "" |
| def ansiMagentaBg: String = if (isEnabled) MAGENTA_B else "" |
| def ansiCyanFg: String = if (isEnabled) CYAN else "" |
| def ansiCyanBg: String = if (isEnabled) CYAN_B else "" |
| def ansiWhiteFg: String = if (isEnabled) WHITE else "" |
| def ansiWhiteBg: String = if (isEnabled) WHITE_B else "" |
| def ansiBold: String = if (isEnabled) BOLD else "" |
| def ansiUnderlined: String = if (isEnabled) UNDERLINED else "" |
| def ansiReset: String = if (isEnabled) RESET else "" |
| def ansiReversed: String = if (isEnabled) REVERSED else "" |
| def ansiBlink: String = if (isEnabled) BLINK else "" |
| def ansiInvisible: String = if (isEnabled) INVISIBLE else "" |
| } |
| |
| object NCAnsiColor extends NCAnsiColor { } |