1*9e965d6fSRomain Jobredeaux// Copyright 2022 The Bazel Authors. All rights reserved. 2*9e965d6fSRomain Jobredeaux// 3*9e965d6fSRomain Jobredeaux// Licensed under the Apache License, Version 2.0 (the "License"); 4*9e965d6fSRomain Jobredeaux// you may not use this file except in compliance with the License. 5*9e965d6fSRomain Jobredeaux// You may obtain a copy of the License at 6*9e965d6fSRomain Jobredeaux// 7*9e965d6fSRomain Jobredeaux// http://www.apache.org/licenses/LICENSE-2.0 8*9e965d6fSRomain Jobredeaux// 9*9e965d6fSRomain Jobredeaux// Unless required by applicable law or agreed to in writing, software 10*9e965d6fSRomain Jobredeaux// distributed under the License is distributed on an "AS IS" BASIS, 11*9e965d6fSRomain Jobredeaux// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*9e965d6fSRomain Jobredeaux// See the License for the specific language governing permissions and 13*9e965d6fSRomain Jobredeaux// limitations under the License. 14*9e965d6fSRomain Jobredeaux 15*9e965d6fSRomain Jobredeaux// Package pprint provides colored "pretty print" output helper methods 16*9e965d6fSRomain Jobredeauxpackage pprint 17*9e965d6fSRomain Jobredeaux 18*9e965d6fSRomain Jobredeauximport ( 19*9e965d6fSRomain Jobredeaux "fmt" 20*9e965d6fSRomain Jobredeaux "os" 21*9e965d6fSRomain Jobredeaux) 22*9e965d6fSRomain Jobredeaux 23*9e965d6fSRomain Jobredeauxconst ( 24*9e965d6fSRomain Jobredeaux errorString = "\033[1m\033[31mERROR:\033[0m %s\n" 25*9e965d6fSRomain Jobredeaux warningString = "\033[35mWARNING:\033[0m %s\n" 26*9e965d6fSRomain Jobredeaux infoString = "\033[32mINFO:\033[0m %s\n" 27*9e965d6fSRomain Jobredeaux clearLine = "\033[A\033[K" 28*9e965d6fSRomain Jobredeaux) 29*9e965d6fSRomain Jobredeaux 30*9e965d6fSRomain Jobredeaux// Error prints an error message in bazel style colors 31*9e965d6fSRomain Jobredeauxfunc Error(errorMsg string, args ...interface{}) { 32*9e965d6fSRomain Jobredeaux fmt.Fprintf(os.Stderr, errorString, fmt.Sprintf(errorMsg, args...)) 33*9e965d6fSRomain Jobredeaux} 34*9e965d6fSRomain Jobredeaux 35*9e965d6fSRomain Jobredeaux// Warning prints a warning message in bazel style colors 36*9e965d6fSRomain Jobredeauxfunc Warning(warningMsg string, args ...interface{}) { 37*9e965d6fSRomain Jobredeaux fmt.Fprintf(os.Stderr, warningString, fmt.Sprintf(warningMsg, args...)) 38*9e965d6fSRomain Jobredeaux} 39*9e965d6fSRomain Jobredeaux 40*9e965d6fSRomain Jobredeaux// Info prints an info message in bazel style colors 41*9e965d6fSRomain Jobredeauxfunc Info(infoMsg string, args ...interface{}) { 42*9e965d6fSRomain Jobredeaux fmt.Fprintf(os.Stderr, infoString, fmt.Sprintf(infoMsg, args...)) 43*9e965d6fSRomain Jobredeaux} 44*9e965d6fSRomain Jobredeaux 45*9e965d6fSRomain Jobredeaux// ClearLine deletes the line above the cursor's current position. 46*9e965d6fSRomain Jobredeauxfunc ClearLine() { 47*9e965d6fSRomain Jobredeaux fmt.Printf(clearLine) 48*9e965d6fSRomain Jobredeaux} 49