mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-01-27 15:32:15 -05:00
Bumps [github.com/gookit/config/v2](https://github.com/gookit/config) from 2.2.3 to 2.2.4. - [Release notes](https://github.com/gookit/config/releases) - [Commits](https://github.com/gookit/config/compare/v2.2.3...v2.2.4) --- updated-dependencies: - dependency-name: github.com/gookit/config/v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
90 lines
1.9 KiB
Go
90 lines
1.9 KiB
Go
// Package stdio provide some standard IO util functions.
|
|
package stdio
|
|
|
|
import (
|
|
"bufio"
|
|
"bytes"
|
|
"io"
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
// DiscardReader anything from the reader
|
|
func DiscardReader(src io.Reader) {
|
|
_, _ = io.Copy(io.Discard, src)
|
|
}
|
|
|
|
// ReadString read contents from io.Reader, return empty string on error
|
|
func ReadString(r io.Reader) string {
|
|
bs, err := io.ReadAll(r)
|
|
if err != nil {
|
|
return ""
|
|
}
|
|
return string(bs)
|
|
}
|
|
|
|
// MustReadReader read contents from io.Reader, will panic on error
|
|
func MustReadReader(r io.Reader) []byte {
|
|
bs, err := io.ReadAll(r)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return bs
|
|
}
|
|
|
|
// NewIOReader instance by input: string, bytes, io.Reader
|
|
func NewIOReader(in any) io.Reader {
|
|
switch typIn := in.(type) {
|
|
case []byte:
|
|
return bytes.NewReader(typIn)
|
|
case string:
|
|
return strings.NewReader(typIn)
|
|
case io.Reader:
|
|
return typIn
|
|
}
|
|
panic("invalid input type for create reader")
|
|
}
|
|
|
|
// NewScanner instance by input data or reader
|
|
func NewScanner(in any) *bufio.Scanner {
|
|
switch typIn := in.(type) {
|
|
case io.Reader:
|
|
return bufio.NewScanner(typIn)
|
|
case []byte:
|
|
return bufio.NewScanner(bytes.NewReader(typIn))
|
|
case string:
|
|
return bufio.NewScanner(strings.NewReader(typIn))
|
|
case *bufio.Scanner:
|
|
return typIn
|
|
default:
|
|
panic("invalid input type for create scanner")
|
|
}
|
|
}
|
|
|
|
// WriteByte to stdout, will ignore error
|
|
func WriteByte(b byte) {
|
|
_, _ = os.Stdout.Write([]byte{b})
|
|
}
|
|
|
|
// WriteBytes to stdout, will ignore error
|
|
func WriteBytes(bs []byte) {
|
|
_, _ = os.Stdout.Write(bs)
|
|
}
|
|
|
|
// WritelnBytes to stdout, will ignore error
|
|
func WritelnBytes(bs []byte) {
|
|
_, _ = os.Stdout.Write(bs)
|
|
_, _ = os.Stdout.Write([]byte("\n"))
|
|
}
|
|
|
|
// WriteString to stdout, will ignore error
|
|
func WriteString(s string) {
|
|
_, _ = os.Stdout.WriteString(s)
|
|
}
|
|
|
|
// Writeln string to stdout, will ignore error
|
|
func Writeln(s string) {
|
|
_, _ = os.Stdout.WriteString(s)
|
|
_, _ = os.Stdout.Write([]byte("\n"))
|
|
}
|