package hugio

import "github.com/gohugoio/hugo/common/hugio"

Index

Functions

func CopyDir

func CopyDir(fs afero.Fs, from, to string, shouldCopy func(filename string) bool) error

CopyDir copies a directory.

func CopyFile

func CopyFile(fs afero.Fs, from, to string) error

CopyFile copies a file.

func NewMultiWriteCloser

func NewMultiWriteCloser(writeClosers ...io.WriteCloser) io.WriteCloser

NewMultiWriteCloser creates a new io.WriteCloser that duplicates its writes to all the provided writers.

func NewReadSeekerNoOpCloserFromBytes

func NewReadSeekerNoOpCloserFromBytes(content []byte) readSeekerNopCloser

NewReadSeekerNoOpCloserFromBytes uses bytes.NewReader to create a new ReadSeekerNoOpCloser from the given bytes slice.

func ReadString

func ReadString(r io.Reader) (string, error)

ReadString reads from the given reader and returns the content as a string.

func ToReadCloser

func ToReadCloser(r io.Reader) io.ReadCloser

ToReadCloser creates an io.ReadCloser from the given io.Reader. If it's not already, one will be created with a Close method that does nothing.

func ToWriteCloser

func ToWriteCloser(w io.Writer) io.WriteCloser

ToWriteCloser creates an io.WriteCloser from the given io.Writer. If it's not already, one will be created with a Close method that does nothing.

Types

type FlexiWriter

type FlexiWriter interface {
	io.Writer
	io.ByteWriter
	WriteString(s string) (int, error)
	WriteRune(r rune) (int, error)
}

As implemented by strings.Builder.

type HasBytesPattern

type HasBytesPattern struct {
	Match   bool
	Pattern []byte
}

type HasBytesWriter

type HasBytesWriter struct {
	Patterns []*HasBytesPattern
	// contains filtered or unexported fields
}

HasBytesWriter is a writer will match against a slice of patterns.

func (*HasBytesWriter) Write

func (h *HasBytesWriter) Write(p []byte) (n int, err error)

type OpenReadSeekCloser

type OpenReadSeekCloser func() (ReadSeekCloser, error)

OpenReadSeekCloser allows setting some other way (than reading from a filesystem) to open or create a ReadSeekCloser.

func NewOpenReadSeekCloser

func NewOpenReadSeekCloser(r ReadSeekCloser) OpenReadSeekCloser

NewOpenReadSeekCloser creates a new ReadSeekCloser from the given ReadSeeker. The ReadSeeker will be seeked to the beginning before returned.

type PipeReadWriteCloser

type PipeReadWriteCloser struct {
	*io.PipeReader
	*io.PipeWriter
}

PipeReadWriteCloser is a convenience type to create a pipe with a ReadCloser and a WriteCloser.

func NewPipeReadWriteCloser

func NewPipeReadWriteCloser() PipeReadWriteCloser

NewPipeReadWriteCloser creates a new PipeReadWriteCloser.

func (PipeReadWriteCloser) Close

func (c PipeReadWriteCloser) Close() (err error)

func (PipeReadWriteCloser) WriteString

func (c PipeReadWriteCloser) WriteString(s string) (int, error)

type ReadSeekCloser

type ReadSeekCloser interface {
	ReadSeeker
	io.Closer
}

ReadSeekCloser is implemented by afero.File. We use this as the common type for content in Resource objects, even for strings.

func NewReadSeekerNoOpCloser

func NewReadSeekerNoOpCloser(r ReadSeeker) ReadSeekCloser

NewReadSeekerNoOpCloser creates a new ReadSeekerNoOpCloser with the given ReadSeeker.

func NewReadSeekerNoOpCloserFromString

func NewReadSeekerNoOpCloserFromString(content string) ReadSeekCloser

NewReadSeekerNoOpCloserFromString uses strings.NewReader to create a new ReadSeekerNoOpCloser from the given string.

type ReadSeekCloserProvider

type ReadSeekCloserProvider interface {
	ReadSeekCloser() (ReadSeekCloser, error)
}

ReadSeekCloserProvider provides a ReadSeekCloser.

type ReadSeeker

type ReadSeeker interface {
	io.Reader
	io.Seeker
}

ReadSeeker wraps io.Reader and io.Seeker.

type ReadWriteCloser

type ReadWriteCloser interface {
	io.Reader
	io.Writer
	io.Closer
}

type StringReader

type StringReader interface {
	ReadString() string
}

StringReader provides a way to read a string.

Source Files

copy.go hasBytesWriter.go readers.go writers.go

Version
v0.144.2 (latest)
Published
Feb 19, 2025
Platform
linux/amd64
Imports
7 packages
Last checked
13 hours ago

Tools for package owners.