github.com/shohhei1126/hugo@v0.42.2-0.20180623210752-3d5928889ad7/utils/utils.go (about)

     1  // Copyright 2016 The Hugo Authors. All rights reserved.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  // http://www.apache.org/licenses/LICENSE-2.0
     7  //
     8  // Unless required by applicable law or agreed to in writing, software
     9  // distributed under the License is distributed on an "AS IS" BASIS,
    10  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    11  // See the License for the specific language governing permissions and
    12  // limitations under the License.
    13  
    14  package utils
    15  
    16  import (
    17  	"os"
    18  
    19  	jww "github.com/spf13/jwalterweatherman"
    20  )
    21  
    22  // CheckErr logs the messages given and then the error.
    23  // TODO(bep) Remove this package.
    24  func CheckErr(logger *jww.Notepad, err error, s ...string) {
    25  	if err == nil {
    26  		return
    27  	}
    28  	if len(s) == 0 {
    29  		logger.CRITICAL.Println(err)
    30  		return
    31  	}
    32  	for _, message := range s {
    33  		logger.ERROR.Println(message)
    34  	}
    35  	logger.ERROR.Println(err)
    36  }
    37  
    38  // StopOnErr exits on any error after logging it.
    39  func StopOnErr(logger *jww.Notepad, err error, s ...string) {
    40  	if err == nil {
    41  		return
    42  	}
    43  
    44  	defer os.Exit(-1)
    45  
    46  	if len(s) == 0 {
    47  		newMessage := err.Error()
    48  		// Printing an empty string results in a error with
    49  		// no message, no bueno.
    50  		if newMessage != "" {
    51  			logger.CRITICAL.Println(newMessage)
    52  		}
    53  	}
    54  	for _, message := range s {
    55  		if message != "" {
    56  			logger.CRITICAL.Println(message)
    57  		}
    58  	}
    59  }