github.com/Racer159/jackal@v0.32.7-0.20240401174413-0bd2339e4f2e/src/pkg/message/pausable.go (about)

     1  // SPDX-License-Identifier: Apache-2.0
     2  // SPDX-FileCopyrightText: 2021-Present The Jackal Authors
     3  
     4  // Package message provides a rich set of functions for displaying messages to the user.
     5  package message
     6  
     7  import (
     8  	"io"
     9  	"os"
    10  )
    11  
    12  // pausableLogFile is a pausable log file
    13  type pausableLogFile struct {
    14  	wr io.Writer
    15  	f  *os.File
    16  }
    17  
    18  // pause the log file
    19  func (l *pausableLogFile) pause() {
    20  	l.wr = io.Discard
    21  }
    22  
    23  // resume the log file
    24  func (l *pausableLogFile) resume() {
    25  	l.wr = l.f
    26  }
    27  
    28  // Write writes the data to the log file
    29  func (l *pausableLogFile) Write(p []byte) (n int, err error) {
    30  	return l.wr.Write(p)
    31  }