Documentation ¶
Index ¶
- Constants
- Variables
- func Close(fileList ...FileInterface)
- func CloseChannel(fileHelper *FileHelper) chan<- FileInterface
- func CloseFilesFromChannel(fileHelper *FileHelper, fileList chan FileInterface)
- func Copy(source io.Reader, destination io.Writer) (written int64, e error)
- func CopyBuffer(source io.Reader, destination io.Writer, buffer []byte) (written int64, e error)
- func CopyN(source io.Reader, destination io.Writer, n int64) (written int64, e error)
- func IsDirectoryE(e error) bool
- func IsExist(e error) bool
- func IsNotExist(e error) bool
- func IsPermissionDenied(e error) bool
- func ListDirectory(path string) (names []string, e error)
- func OpenFiles(fileHelper *FileHelper, files ...string) <-chan FileInterface
- func OpenFilesFromChannel(fileHelper *FileHelper, fileList <-chan string) <-chan FileInterface
- func ReadFile(path string) (result []byte, e error)
- func ReadFileAsString(path string) (result string, e error)
- func ReadFileIntoBuffer(helper *FileHelper, path string, buffered *NamedBuffer)
- func ReadIntoBuffer(helper *FileHelper, reader io.Reader, buffered *NamedBuffer)
- func Remove(handler FileInterface) error
- func TemporaryName(prefix string) string
- func WriteFile(helper *FileHelper, path string, data []byte) (e error)
- func WriteTo(helper *FileHelper, path string, data []byte) (e error)
- type CopyEntryInterface
- type CopyHelper
- type Cp
- type FakeStdFile
- func (fake *FakeStdFile) Chdir() error
- func (fake *FakeStdFile) Chmod(mode os.FileMode) error
- func (fake *FakeStdFile) Chown(uid, gid int) error
- func (fake *FakeStdFile) Close() error
- func (fake *FakeStdFile) Fd() uintptr
- func (fake *FakeStdFile) Name() string
- func (fake *FakeStdFile) Read(b []byte) (n int, err error)
- func (fake *FakeStdFile) ReadAt(b []byte, off int64) (n int, err error)
- func (fake *FakeStdFile) Readdir(n int) (fi []os.FileInfo, err error)
- func (fake *FakeStdFile) Readdirnames(n int) (names []string, err error)
- func (fake *FakeStdFile) Seek(offset int64, whence int) (ret int64, err error)
- func (fake *FakeStdFile) Stat() (os.FileInfo, error)
- func (fake *FakeStdFile) Sync() error
- func (fake *FakeStdFile) Truncate(size int64) error
- func (fake *FakeStdFile) Write(b []byte) (n int, err error)
- func (fake *FakeStdFile) WriteAt(b []byte, off int64) (n int, err error)
- func (fake *FakeStdFile) WriteString(s string) (n int, err error)
- type FileHelper
- func (helper *FileHelper) ApplyFileAdvice(to FileInterface)
- func (helper *FileHelper) Copy(from interface{}) *FileHelper
- func (helper *FileHelper) DoNotTestForDirectory() bool
- func (helper *FileHelper) FileInfo(path string, lstat bool) (FileInfoInterface, error)
- func (helper *FileHelper) HasAppend() bool
- func (helper *FileHelper) HasCreate() bool
- func (helper *FileHelper) HasExclusive() bool
- func (helper *FileHelper) HasSynchronous() bool
- func (helper *FileHelper) HasTruncate() bool
- func (helper *FileHelper) IsStdinToken(what string) bool
- func (helper *FileHelper) OpenFlags() int
- func (helper *FileHelper) Permissions() os.FileMode
- func (helper *FileHelper) ReadAndWrite() *FileHelper
- func (helper *FileHelper) ReadOnly() *FileHelper
- func (helper *FileHelper) ReadSize() int
- func (helper *FileHelper) ResetFileAdvice(to FileInterface)
- func (helper *FileHelper) SetPermissions(to os.FileMode) *FileHelper
- func (helper *FileHelper) SetReadSize(to int) *FileHelper
- func (helper *FileHelper) SetStderr(astderr io.Writer)
- func (helper *FileHelper) SetStdinStdout(astdinToken string, astdin io.Reader, astdout io.Writer)
- func (helper *FileHelper) ShouldFileAdviceDontNeed() bool
- func (helper *FileHelper) ShouldFileAdviceNoReuse() bool
- func (helper *FileHelper) ShouldFileAdviceReadRandom() bool
- func (helper *FileHelper) ShouldFileAdviceReadSequential() bool
- func (helper *FileHelper) ShouldFileAdviceWillNeed() bool
- func (helper *FileHelper) Stderr() io.Writer
- func (helper *FileHelper) Stdin() io.Reader
- func (helper *FileHelper) Stdout() io.Writer
- func (helper *FileHelper) SupportCli() bool
- func (helper *FileHelper) ToggleAppend() *FileHelper
- func (helper *FileHelper) ToggleCache()
- func (helper *FileHelper) ToggleCreate() *FileHelper
- func (helper *FileHelper) ToggleDoNotTestForDirectory() *FileHelper
- func (helper *FileHelper) ToggleExclusive() *FileHelper
- func (helper *FileHelper) ToggleFileAdviceDontNeed() *FileHelper
- func (helper *FileHelper) ToggleFileAdviceNoReuse() *FileHelper
- func (helper *FileHelper) ToggleFileAdviceReadRandom() *FileHelper
- func (helper *FileHelper) ToggleFileAdviceReadSequential() *FileHelper
- func (helper *FileHelper) ToggleFileAdviceWillNeed() *FileHelper
- func (helper *FileHelper) ToggleSynchronous() *FileHelper
- func (helper *FileHelper) ToggleTruncate() *FileHelper
- func (helper *FileHelper) WriteOnly() *FileHelper
- type FileInfo
- func (info *FileInfo) BlockSize() (blockSize int64)
- func (info *FileInfo) Blocks() (blocks int64)
- func (info *FileInfo) DeviceId() (deviceId uint64)
- func (info *FileInfo) Group() (group string)
- func (info *FileInfo) GroupId() (groupId int)
- func (info *FileInfo) HardLinks() (hardLinks uint64)
- func (info *FileInfo) Inode() (inode uint64)
- func (info *FileInfo) IsExecuteable() bool
- func (info *FileInfo) Owner() (owner string)
- func (info *FileInfo) Path() string
- func (info *FileInfo) Same(compare os.FileInfo) bool
- func (info *FileInfo) UserId() (userId int)
- func (info *FileInfo) Username() (user string)
- type FileInfoInterface
- type FileInterface
- func Create(fileHelper *FileHelper, path string) (handler FileInterface, e error)
- func Open(fileHelper *FileHelper, path string) (handler FileInterface, e error)
- func OpenDirectory(path string) (handler FileInterface, e error)
- func Temporary(fileHelper *FileHelper, prefix string) (handler FileInterface, e error)
- type NamedBuffer
Constants ¶
const ( DEBUG = false PREFIX_SEPARATOR = "_" STDIN_TOKEN = "-" // the smallest read for an io.Reader buffer READ_BUFFER_SMALL_SIZE = 512 // the usual read size for an io.Reader buffer READ_BUFFER_SIZE = 4 * 1024 // the maximum read size for an io.Reader buffer READ_BUFFER_MAXIMUM_SIZE = 32 * 1024 )
Variables ¶
var IsDirectoryError = errors.New("That's a directory!")
well, duh!
var IsNotDirectoryError = errors.New("That's _not_ a directory!")
var NotAvailableE = errors.New("That function is not available. This file is faking.")
Functions ¶
func CloseChannel ¶
func CloseChannel(fileHelper *FileHelper) chan<- FileInterface
give back a close chan to push FileInterfaces to; when done, close the channel.
func CloseFilesFromChannel ¶
func CloseFilesFromChannel(fileHelper *FileHelper, fileList chan FileInterface)
close a bunch of files via a channel
func CopyBuffer ¶
copy FROM -> TO
func IsPermissionDenied ¶
is the error a permission denied error
func ListDirectory ¶
func OpenFiles ¶
func OpenFiles(fileHelper *FileHelper, files ...string) <-chan FileInterface
open N files. please keep limits like ulimit file.max in mind. see also parallel.OpenFiles() for a parallel version and parallel.OpenFilesIntoChannel() consider using iotool.ToggleFileAdviceWillNeed(). for error handling, use FileHelper.SetE(). it's your responsibility to close the files...
func OpenFilesFromChannel ¶
func OpenFilesFromChannel(fileHelper *FileHelper, fileList <-chan string) <-chan FileInterface
open N files from channel. please keep limits like ulimit file.max in mind. see also parallel.OpenFiles() for a parallel version and parallel.OpenFilesIntoChannel() consider using iotool.ToggleFileAdviceWillNeed(). for error handling, use FileHelper.SetE(). it's your responsibility to close the files...
func ReadFileAsString ¶
func ReadFileIntoBuffer ¶
func ReadFileIntoBuffer(helper *FileHelper, path string, buffered *NamedBuffer)
go; read a file into a channel buffer
func ReadIntoBuffer ¶
func ReadIntoBuffer(helper *FileHelper, reader io.Reader, buffered *NamedBuffer)
go; read a reader into a buffer
func TemporaryName ¶
return a filename with full path in os.TempDir(). prefix should be your program name.
Types ¶
type CopyEntryInterface ¶
type CopyEntryInterface interface { From() string To() string FromInfo() FileInfoInterface ToInfo() FileInfoInterface }
type CopyHelper ¶
type CopyHelper struct { *FileHelper // contains filtered or unexported fields }
type Cp ¶
type Cp struct { From, To string // contains filtered or unexported fields }
func (*Cp) FromInfo ¶
func (cp *Cp) FromInfo() (FileInfoInterface, error)
get cached FileInfo from *Cp.From.
func (*Cp) ToInfo ¶
func (cp *Cp) ToInfo() (FileInfoInterface, error)
get cached FileInfo from *Cp.To.
type FakeStdFile ¶
type FakeStdFile struct {
// contains filtered or unexported fields
}
quickndirty stdin stdout fake for file
func NewFakeStdFile ¶
func NewFakeStdFile(astdin io.Reader, astdout io.Writer) *FakeStdFile
provide stdin and stdout
func (*FakeStdFile) Chdir ¶
func (fake *FakeStdFile) Chdir() error
func (*FakeStdFile) Chown ¶
func (fake *FakeStdFile) Chown(uid, gid int) error
func (*FakeStdFile) Close ¶
func (fake *FakeStdFile) Close() error
func (*FakeStdFile) Fd ¶
func (fake *FakeStdFile) Fd() uintptr
func (*FakeStdFile) Name ¶
func (fake *FakeStdFile) Name() string
func (*FakeStdFile) ReadAt ¶
func (fake *FakeStdFile) ReadAt(b []byte, off int64) (n int, err error)
func (*FakeStdFile) Readdirnames ¶
func (fake *FakeStdFile) Readdirnames(n int) (names []string, err error)
func (*FakeStdFile) Seek ¶
func (fake *FakeStdFile) Seek(offset int64, whence int) (ret int64, err error)
func (*FakeStdFile) Sync ¶
func (fake *FakeStdFile) Sync() error
func (*FakeStdFile) Truncate ¶
func (fake *FakeStdFile) Truncate(size int64) error
func (*FakeStdFile) WriteAt ¶
func (fake *FakeStdFile) WriteAt(b []byte, off int64) (n int, err error)
func (*FakeStdFile) WriteString ¶
func (fake *FakeStdFile) WriteString(s string) (n int, err error)
type FileHelper ¶
type FileHelper struct { sync.Mutex // the more help, the better. lots and lots and lots of help needed! abstract.BaseHelper abstract.WorkerHelper // contains filtered or unexported fields }
this struct is used to reduce function parameters.
func (*FileHelper) ApplyFileAdvice ¶
func (helper *FileHelper) ApplyFileAdvice(to FileInterface)
set the file advices on file descriptors (fd). ignore all errors (just like coreutils does)
func (*FileHelper) Copy ¶
func (helper *FileHelper) Copy(from interface{}) *FileHelper
copy several values from a helper
func (*FileHelper) DoNotTestForDirectory ¶
func (helper *FileHelper) DoNotTestForDirectory() bool
get if test for directory
func (*FileHelper) FileInfo ¶
func (helper *FileHelper) FileInfo(path string, lstat bool) (FileInfoInterface, error)
FIXME: correct lstat cache
func (*FileHelper) HasExclusive ¶
func (helper *FileHelper) HasExclusive() bool
is exlusive already active
func (*FileHelper) HasSynchronous ¶
func (helper *FileHelper) HasSynchronous() bool
is synchronized already active
func (*FileHelper) HasTruncate ¶
func (helper *FileHelper) HasTruncate() bool
is truncate already active
func (*FileHelper) IsStdinToken ¶
func (helper *FileHelper) IsStdinToken(what string) bool
return if string is equal to STDIN token (usualley "-")
func (*FileHelper) Permissions ¶
func (helper *FileHelper) Permissions() os.FileMode
return permissions
func (*FileHelper) ReadAndWrite ¶
func (helper *FileHelper) ReadAndWrite() *FileHelper
sets to read and write and discards all other flags
func (*FileHelper) ReadOnly ¶
func (helper *FileHelper) ReadOnly() *FileHelper
sets to read only and discards all other flags
func (*FileHelper) ResetFileAdvice ¶
func (helper *FileHelper) ResetFileAdvice(to FileInterface)
resets all file advices on $to and in this helper
func (*FileHelper) SetPermissions ¶
func (helper *FileHelper) SetPermissions(to os.FileMode) *FileHelper
set permissions
func (*FileHelper) SetReadSize ¶
func (helper *FileHelper) SetReadSize(to int) *FileHelper
func (*FileHelper) SetStderr ¶
func (helper *FileHelper) SetStderr(astderr io.Writer)
set STDERR to a io.Writer
func (*FileHelper) SetStdinStdout ¶
set STDIN and STDOUT. only support supplying both
func (*FileHelper) ShouldFileAdviceDontNeed ¶
func (helper *FileHelper) ShouldFileAdviceDontNeed() bool
thats a question to be answered
func (*FileHelper) ShouldFileAdviceNoReuse ¶
func (helper *FileHelper) ShouldFileAdviceNoReuse() bool
thats a question to be answered
func (*FileHelper) ShouldFileAdviceReadRandom ¶
func (helper *FileHelper) ShouldFileAdviceReadRandom() bool
thats a question to be answered
func (*FileHelper) ShouldFileAdviceReadSequential ¶
func (helper *FileHelper) ShouldFileAdviceReadSequential() bool
thats a question to be answered
func (*FileHelper) ShouldFileAdviceWillNeed ¶
func (helper *FileHelper) ShouldFileAdviceWillNeed() bool
thats a question to be answered
func (*FileHelper) SupportCli ¶
func (helper *FileHelper) SupportCli() bool
return if cli output is supported
func (*FileHelper) ToggleAppend ¶
func (helper *FileHelper) ToggleAppend() *FileHelper
add append to flags
func (*FileHelper) ToggleCache ¶
func (helper *FileHelper) ToggleCache()
@override toggle cache you should
func (*FileHelper) ToggleCreate ¶
func (helper *FileHelper) ToggleCreate() *FileHelper
add create to flags
func (*FileHelper) ToggleDoNotTestForDirectory ¶
func (helper *FileHelper) ToggleDoNotTestForDirectory() *FileHelper
please do not test for directory
func (*FileHelper) ToggleExclusive ¶
func (helper *FileHelper) ToggleExclusive() *FileHelper
add exclusive to flags
func (*FileHelper) ToggleFileAdviceDontNeed ¶
func (helper *FileHelper) ToggleFileAdviceDontNeed() *FileHelper
please do file advice DONT_NEED
func (*FileHelper) ToggleFileAdviceNoReuse ¶
func (helper *FileHelper) ToggleFileAdviceNoReuse() *FileHelper
please do file advice NO_REUSE
func (*FileHelper) ToggleFileAdviceReadRandom ¶
func (helper *FileHelper) ToggleFileAdviceReadRandom() *FileHelper
please do file advice RANDOM_READ
func (*FileHelper) ToggleFileAdviceReadSequential ¶
func (helper *FileHelper) ToggleFileAdviceReadSequential() *FileHelper
please do file advice SEQUENTIAL_READ
func (*FileHelper) ToggleFileAdviceWillNeed ¶
func (helper *FileHelper) ToggleFileAdviceWillNeed() *FileHelper
please do file advice WILLNEED
func (*FileHelper) ToggleSynchronous ¶
func (helper *FileHelper) ToggleSynchronous() *FileHelper
add sync to flags
func (*FileHelper) ToggleTruncate ¶
func (helper *FileHelper) ToggleTruncate() *FileHelper
add trunc to flags
func (*FileHelper) WriteOnly ¶
func (helper *FileHelper) WriteOnly() *FileHelper
sets to write only and discards all other flags
type FileInfo ¶
wrapper around os.FileInfo for easier access to os.FileInfo.Sys()
func NewOsFileInfo ¶
fresh and shiny
func (*FileInfo) IsExecuteable ¶
is file not a directory and exeCUTEable
type FileInfoInterface ¶
type FileInterface ¶
type FileInterface interface { io.Reader io.ReaderAt io.Writer io.WriterAt io.Seeker Chdir() error Chmod(mode os.FileMode) error Chown(uid, gid int) error Fd() uintptr Name() string Readdir(n int) (fi []os.FileInfo, err error) Readdirnames(n int) (names []string, err error) Stat() (os.FileInfo, error) Sync() error Truncate(size int64) error WriteString(s string) (n int, err error) Close() error }
func Create ¶
func Create(fileHelper *FileHelper, path string) (handler FileInterface, e error)
create a file. if you need it truncated, use FileHelper.ToggleTruncate().
func Open ¶
func Open(fileHelper *FileHelper, path string) (handler FileInterface, e error)
open a file with FileHelper. if its a dir, return nil. it's your responsibility to close the file...
func OpenDirectory ¶
func OpenDirectory(path string) (handler FileInterface, e error)
open a directory
func Temporary ¶
func Temporary(fileHelper *FileHelper, prefix string) (handler FileInterface, e error)
create a temporary file. only makes sure the file is unique. file will not be removed. prefix should be your program name.
type NamedBuffer ¶
type NamedBuffer struct { *io.PipeReader *io.PipeWriter // contains filtered or unexported fields }
func (*NamedBuffer) Cancel ¶
func (buffer *NamedBuffer) Cancel()
cancel reading; clear buffers; blocks till cancel is done
func (*NamedBuffer) Close ¶
func (buffer *NamedBuffer) Close()
func (*NamedBuffer) IsCanceled ¶
func (buffer *NamedBuffer) IsCanceled() bool
func (*NamedBuffer) Key ¶
func (buffer *NamedBuffer) Key() uint
if the file was in a sequence, eg a list, returns the key
func (*NamedBuffer) SetKey ¶
func (buffer *NamedBuffer) SetKey(to uint)