32 lines
706 B
Go
32 lines
706 B
Go
package types
|
|
|
|
import "os"
|
|
|
|
// FileOrContent holds a file path or content.
|
|
type FileOrContent string
|
|
|
|
// String returns the FileOrContent in string format.
|
|
func (f FileOrContent) String() string {
|
|
return string(f)
|
|
}
|
|
|
|
// IsPath returns true if the FileOrContent is a file path, otherwise returns false.
|
|
func (f FileOrContent) IsPath() bool {
|
|
_, err := os.Stat(f.String())
|
|
return err == nil
|
|
}
|
|
|
|
// Read returns the content after reading the FileOrContent variable.
|
|
func (f FileOrContent) Read() ([]byte, error) {
|
|
var content []byte
|
|
if f.IsPath() {
|
|
var err error
|
|
content, err = os.ReadFile(f.String())
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
} else {
|
|
content = []byte(f)
|
|
}
|
|
return content, nil
|
|
}
|