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 CloserFunc

type CloserFunc func() error

CloserFunc is an adapter to allow the use of ordinary functions as io.Closers.

func (CloserFunc) Close

func (f CloserFunc) Close() error

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 SizeReader

type SizeReader interface {
	io.Reader
	Sizer
}

func ToSizeReader

func ToSizeReader(r io.Reader) (SizeReader, error)

ToSizeReader converts the given io.Reader to a SizeReader. Note that if r is not a SizeReader, the entire content will be read into memory

type Sizer

type Sizer interface {
	Size() int64
}

Sizer provides the size of, typically, a io.Reader. As implemented by e.g. os.File and io.SectionReader.

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.153.4 (latest)
Published
Dec 28, 2025
Platform
linux/amd64
Imports
7 packages
Last checked
4 months ago

Tools for package owners.