From df021317a964a482cd1cd579de5a12d50faf0d08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Fri, 26 Oct 2018 14:32:32 +0200 Subject: [PATCH] commands: Only show Ansi escape codes if in a terminal --- commands/helpers.go | 7 +++++++ commands/helpers_others.go | 23 ----------------------- commands/helpers_windows.go | 23 ----------------------- commands/hugo.go | 22 ++++++++++++++++++---- 4 files changed, 25 insertions(+), 50 deletions(-) delete mode 100644 commands/helpers_others.go delete mode 100644 commands/helpers_windows.go diff --git a/commands/helpers.go b/commands/helpers.go index be6edaf993a..1386e425fe6 100644 --- a/commands/helpers.go +++ b/commands/helpers.go @@ -23,6 +23,13 @@ import ( "github.com/spf13/cobra" ) +const ( + ansiEsc = "\u001B" + clearLine = "\r\033[K" + hideCursor = ansiEsc + "[?25l" + showCursor = ansiEsc + "[?25h" +) + type flagsToConfigHandler interface { flagsToConfig(cfg config.Provider) } diff --git a/commands/helpers_others.go b/commands/helpers_others.go deleted file mode 100644 index b6a97e2bd19..00000000000 --- a/commands/helpers_others.go +++ /dev/null @@ -1,23 +0,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" -) diff --git a/commands/helpers_windows.go b/commands/helpers_windows.go deleted file mode 100644 index fd02c3a033f..00000000000 --- a/commands/helpers_windows.go +++ /dev/null @@ -1,23 +0,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 = "" -) diff --git a/commands/hugo.go b/commands/hugo.go index 1cfbdcf7c1f..ce11626eb65 100644 --- a/commands/hugo.go +++ b/commands/hugo.go @@ -27,6 +27,7 @@ import ( "github.com/gohugoio/hugo/common/herrors" "github.com/gohugoio/hugo/common/loggers" + "github.com/gohugoio/hugo/common/terminal" "syscall" @@ -264,6 +265,17 @@ func setValueFromFlag(flags *flag.FlagSet, key string, cfg config.Provider, targ } } +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 @@ func (c *commandeer) fullBuild() error { ) 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 {