package org.apereo.cas.util;
import com.github.lalyos.jfiglet.FigletFont;
import com.google.common.base.Throwables;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import java.io.PrintStream;
/**
* This is {@link AsciiArtUtils}.
*
* @author Misagh Moayyed
* @since 5.0.0
*/
public final class AsciiArtUtils {
private static final String ANSI_RESET = "\u001B[0m";
private static final String ANSI_CYAN = "\u001B[36m";
private AsciiArtUtils() {
}
/**
* Print ascii art.
*
* @param out the out
* @param asciiArt the ascii art
*/
public static void printAsciiArt(final PrintStream out, final String asciiArt) {
printAsciiArt(out, asciiArt, null);
}
/**
* Print ascii art.
*
* @param out the out
* @param asciiArt the ascii art
* @param additional the additional
*/
public static void printAsciiArtWarning(final Logger out, final String asciiArt, final String additional) {
try {
out.warn(ANSI_CYAN);
out.warn("\n\n".concat(FigletFont.convertOneLine(asciiArt)).concat(additional));
out.warn(ANSI_RESET);
} catch (final Exception e) {
throw Throwables.propagate(e);
}
}
/**
* Print ascii art info.
*
* @param out the out
* @param asciiArt the ascii art
* @param additional the additional
*/
public static void printAsciiArtInfo(final Logger out, final String asciiArt, final String additional) {
try {
out.info(ANSI_CYAN);
out.info("\n\n".concat(FigletFont.convertOneLine(asciiArt)).concat(additional));
out.info(ANSI_RESET);
} catch (final Exception e) {
throw Throwables.propagate(e);
}
}
/**
* Print ascii art.
*
* @param out the out
* @param asciiArt the ascii art
* @param additional the additional
*/
public static void printAsciiArt(final PrintStream out, final String asciiArt, final String additional) {
try {
out.println(ANSI_CYAN);
if (StringUtils.isNotBlank(additional)) {
out.println(FigletFont.convertOneLine(asciiArt));
out.println(additional);
} else {
out.print(FigletFont.convertOneLine(asciiArt));
}
out.println(ANSI_RESET);
} catch (final Exception e) {
throw Throwables.propagate(e);
}
}
}