print stderr and script errors to console

This commit is contained in:
Florian Pfitzer
2023-09-15 07:41:44 +02:00
parent 13b05bef9a
commit aee7d20e54
3 changed files with 58 additions and 2 deletions
+2
View File
@@ -27,6 +27,8 @@ func (r *Runner) ExecScript(script string) string {
if nerr == nil {
return out
}
} else {
utils.ErrorF("Error running script: %s", err.Error())
}
return ""
+31 -2
View File
@@ -414,14 +414,21 @@ func runCommandWithError(cmd string) (string, error) {
// output command output to std too
cmdReader, _ := realCmd.StdoutPipe()
errReader, _ := realCmd.StderrPipe()
scanner := bufio.NewScanner(cmdReader)
errScanner := bufio.NewScanner(errReader)
go func() {
for scanner.Scan() {
out := scanner.Text()
DebugF(out)
Debug(out)
output += out + "\n"
}
}()
go func() {
for errScanner.Scan() {
Error(errScanner.Text())
}
}()
if err := realCmd.Start(); err != nil {
return output, err
}
@@ -454,6 +461,7 @@ func RunCommandWithErr(command string, timeoutRaw ...string) (string, error) {
select {
case <-c.Done():
return output, err
case <-time.After(time.Duration(timeout) * time.Second):
return out, fmt.Errorf("command got timeout")
@@ -472,7 +480,9 @@ func RunCommandSteamOutput(cmd string) (string, error) {
// output command output to std too
cmdReader, _ := realCmd.StdoutPipe()
errReader, _ := realCmd.StderrPipe()
scanner := bufio.NewScanner(cmdReader)
errScanner := bufio.NewScanner(errReader)
go func() {
for scanner.Scan() {
out := scanner.Text()
@@ -480,6 +490,11 @@ func RunCommandSteamOutput(cmd string) (string, error) {
output += out
}
}()
go func() {
for errScanner.Scan() {
ErrorF(errScanner.Text())
}
}()
if err := realCmd.Start(); err != nil {
return output, err
}
@@ -501,14 +516,21 @@ func RunOSCommand(cmd string) (string, error) {
// output command output to std too
cmdReader, _ := realCmd.StdoutPipe()
errReader, _ := realCmd.StderrPipe()
scanner := bufio.NewScanner(cmdReader)
errScanner := bufio.NewScanner(errReader)
go func() {
for scanner.Scan() {
out := scanner.Text()
DebugF(out)
Debug(out)
output += out
}
}()
go func() {
for errScanner.Scan() {
Error(errScanner.Text())
}
}()
if err := realCmd.Start(); err != nil {
return output, err
}
@@ -528,12 +550,19 @@ func RunCommandWithoutOutput(cmd string) error {
DebugF("[Exec] %v", command)
realCmd := exec.Command(command[0], command[1:]...)
cmdReader, _ := realCmd.StdoutPipe()
errReader, _ := realCmd.StderrPipe()
scanner := bufio.NewScanner(cmdReader)
errScanner := bufio.NewScanner(errReader)
go func() {
for scanner.Scan() {
InforF(scanner.Text())
}
}()
go func() {
for errScanner.Scan() {
ErrorF(errScanner.Text())
}
}()
if err := realCmd.Start(); err != nil {
return err
}
+25
View File
@@ -101,26 +101,51 @@ func InforF(format string, args ...interface{}) {
logger.Info(fmt.Sprintf(format, args...))
}
// Infor print info message
func Infor(args ...interface{}) {
logger.Info(args...)
}
// ErrorF print good message
func ErrorF(format string, args ...interface{}) {
logger.Error(fmt.Sprintf(format, args...))
}
// Error print good message
func Error(args ...interface{}) {
logger.Error(args...)
}
// WarnF print good message
func WarnF(format string, args ...interface{}) {
logger.Warning(fmt.Sprintf(format, args...))
}
// Warn print good message
func Warn(args ...interface{}) {
logger.Warning(args...)
}
// TraceF print good message
func TraceF(format string, args ...interface{}) {
logger.Trace(fmt.Sprintf(format, args...))
}
// Trace print good message
func Trace(args ...interface{}) {
logger.Trace(args...)
}
// DebugF print debug message
func DebugF(format string, args ...interface{}) {
logger.Debug(fmt.Sprintf(format, args...))
}
// Debug print debug message
func Debug(args ...interface{}) {
logger.Debug(args...)
}
// Emojif print good message
func Emojif(e string, format string, args ...interface{}) string {
emj := strings.TrimSpace(emoji.Sprint(e))