shithub: hugo

Download patch

ref: df021317a964a482cd1cd579de5a12d50faf0d08
parent: 78578632f545283741a01f024a6ccedc0b695a30
author: Bjørn Erik Pedersen <[email protected]>
date: Fri Oct 26 10:32:32 EDT 2018

commands: Only show Ansi escape codes if in a terminal

--- a/commands/helpers.go
+++ b/commands/helpers.go
@@ -23,6 +23,13 @@
 	"github.com/spf13/cobra"
 )
 
+const (
+	ansiEsc    = "\u001B"
+	clearLine  = "\r\033[K"
+	hideCursor = ansiEsc + "[?25l"
+	showCursor = ansiEsc + "[?25h"
+)
+
 type flagsToConfigHandler interface {
 	flagsToConfig(cfg config.Provider)
 }
--- a/commands/helpers_others.go
+++ /dev/null
@@ -1,23 +1,0 @@
-// Copyright 2018 The Hugo Authors. All rights reserved.
-//
-// Licensed 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.
-
-// +build !windows
-
-package commands
-
-const (
-	ansiEsc    = "\u001B"
-	clearLine  = "\r\033[K"
-	hideCursor = ansiEsc + "[?25l"
-	showCursor = ansiEsc + "[?25h"
-)
--- a/commands/helpers_windows.go
+++ /dev/null
@@ -1,23 +1,0 @@
-// Copyright 2018 The Hugo Authors. All rights reserved.
-//
-// Licensed 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.
-
-// +build windows
-
-package commands
-
-const (
-	ansiEsc    = ""
-	clearLine  = ""
-	hideCursor = ""
-	showCursor = ""
-)
--- a/commands/hugo.go
+++ b/commands/hugo.go
@@ -27,6 +27,7 @@
 
 	"github.com/gohugoio/hugo/common/herrors"
 	"github.com/gohugoio/hugo/common/loggers"
+	"github.com/gohugoio/hugo/common/terminal"
 
 	"syscall"
 
@@ -264,6 +265,17 @@
 	}
 }
 
+func isTerminal() bool {
+	return terminal.IsTerminal(os.Stdout)
+
+}
+func ifTerminal(s string) string {
+	if !isTerminal() {
+		return ""
+	}
+	return s
+}
+
 func (c *commandeer) fullBuild() error {
 	var (
 		g         errgroup.Group
@@ -271,10 +283,12 @@
 	)
 
 	if !c.h.quiet {
-		fmt.Print(hideCursor + "Building sites … ")
-		defer func() {
-			fmt.Print(showCursor + clearLine)
-		}()
+		fmt.Print(ifTerminal(hideCursor) + "Building sites … ")
+		if isTerminal() {
+			defer func() {
+				fmt.Print(showCursor + clearLine)
+			}()
+		}
 	}
 
 	copyStaticFunc := func() error {