cli/docs/services/io.md
Snider 5d4e081143 Refactor core tests and improve mock implementations
Signed-off-by: Snider <snider@lt.hn>
2025-11-04 13:12:09 +00:00

2 KiB

title
io

Service: io

The io service provides a standardized interface for interacting with different storage backends, such as the local disk, S3, or SFTP.

Types

type Medium

Medium defines the standard interface for a storage backend.

type Medium interface {
	// Read retrieves the content of a file as a string.
	Read(path string) (string, error)

	// Write saves the given content to a file, overwriting it if it exists.
	Write(path, content string) error

	// EnsureDir makes sure a directory exists, creating it if necessary.
	EnsureDir(path string) error

	// IsFile checks if a path exists and is a regular file.
	IsFile(path string) bool

	// FileGet is a convenience function that reads a file from the medium.
	FileGet(path string) (string, error)

	// FileSet is a convenience function that writes a file to the medium.
	FileSet(path, content string) error
}

type MockMedium

MockMedium implements the Medium interface for testing purposes.

type MockMedium struct {
	Files map[string]string
	Dirs  map[string]bool
}

Methods

  • EnsureDir(path string) error: Mocks creating a directory.
  • FileGet(path string) (string, error): Mocks reading a file.
  • FileSet(path, content string) error: Mocks writing a file.
  • IsFile(path string) bool: Mocks checking if a path is a file.
  • Read(path string) (string, error): Mocks reading a file.
  • Write(path, content string) error: Mocks writing a file.

Functions

  • Copy(sourceMedium Medium, sourcePath string, destMedium Medium, destPath string) error: Copies a file from a source medium to a destination medium.
  • EnsureDir(m Medium, path string) error: Ensures a directory exists on the given medium.
  • IsFile(m Medium, path string) bool: Checks if a path is a file on the given medium.
  • Read(m Medium, path string) (string, error): Retrieves the content of a file from the given medium.
  • Write(m Medium, path, content string) error: Saves content to a file on the given medium.

Would you like to see some examples of how to use this service?