formatting changes, improve core.ReadFile command

Signed-off-by: kim (grufwub) <grufwub@gmail.com>
development
kim (grufwub) 3 years ago
parent 14abeb7077
commit f07e9c05e9

@ -2,7 +2,6 @@ package core
import (
"fmt"
"log"
"os"
"os/signal"
"os/user"
@ -15,7 +14,7 @@ import (
"github.com/grufwub/go-config"
"github.com/grufwub/go-errors"
"github.com/grufwub/go-filecache"
"github.com/grufwub/go-logger"
log "github.com/grufwub/go-logger"
)
func usage(code int) {
@ -267,19 +266,19 @@ func ParseConfigAndSetup(tree config.Tree, proto string, defaultPort uint, newLi
signal.Notify(sigChannel, syscall.SIGINT, syscall.SIGTERM, syscall.SIGKILL)
}
func setupLogger(output string) *logger.SLogger {
func setupLogger(output string) *log.SLogger {
switch output {
case "stdout":
return logger.NewSLogger(os.Stdout, true)
return log.NewSLogger(os.Stdout, true)
case "stderr":
return logger.NewSLogger(os.Stderr, true)
return log.NewSLogger(os.Stderr, true)
case "null":
return logger.NewSLogger(&logger.NilWriter{}, true)
return log.NewSLogger(&log.NilWriter{}, true)
default:
file, err := os.OpenFile(output, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0600)
if err != nil {
log.Fatalf(logOutputErrStr, output, err.Error())
}
return logger.NewSLogger(file, true)
return log.NewSLogger(file, true)
}
}

@ -109,7 +109,10 @@ func (c *conn) ReadLine() ([]byte, errors.Error) {
// WriteBytes writes a byte slice to the buffer and returns error status
func (c *conn) Write(b []byte) errors.Error {
_, err := c.bw.Write(b)
return WrapIfError(ErrConnWrite, err)
if err != nil {
return ErrConnWrite.Wrap(err)
}
return nil
}
// ReadFrom writes to the buffer from a reader and returns error status
@ -119,7 +122,10 @@ func (c *conn) ReadFrom(r io.Reader) errors.Error {
// use it's own internal byte buffer along with the deadlineConn's
// Write implementation (forcing the deadline to be regularly updated)
_, err := c.bw.ReadFrom(r)
return WrapIfError(ErrConnWrite, err)
if err != nil {
return ErrConnWrite.Wrap(err)
}
return nil
}
// Writer returns the underlying buffer wrapped conn writer
@ -139,5 +145,8 @@ func (c *conn) Close() errors.Error {
connRequestBufferPool.Put(c.b)
// Return error (if exists)
return WrapIfError(ErrConnClose, err)
if err != nil {
return ErrConnClose.Wrap(err)
}
return nil
}

@ -21,11 +21,3 @@ var (
ErrCGIStart = errors.New(cgiStartErrStr)
ErrCGIExitCode = errors.New(cgiExitCodeErrStr)
)
// WrapIfError only performs Error.Wrap(...) if err != nil
func WrapIfError(e errors.Error, err error) errors.Error {
if err != nil {
return e.Wrap(err)
}
return nil
}

@ -1,6 +1,7 @@
package core
import (
"bytes"
"io"
"os"
"sort"
@ -11,46 +12,34 @@ import (
// OpenFile opens a file for reading (read-only, world-readable)
func OpenFile(p *Path) (*os.File, errors.Error) {
file, err := os.OpenFile(p.Absolute(), os.O_RDONLY, 0444)
return file, WrapIfError(ErrFileOpen, err)
if err != nil {
return nil, ErrFileOpen.Wrap(err)
}
return file, nil
}
// StatFile performs a file stat on a file at path
func StatFile(p *Path) (os.FileInfo, errors.Error) {
stat, err := os.Stat(p.Absolute())
return stat, WrapIfError(ErrFileStat, err)
if err != nil {
return nil, ErrFileStat.Wrap(err)
}
return stat, nil
}
// ReadFile reads a supplied file descriptor into a return byte slice, or error
func ReadFile(file *os.File) ([]byte, errors.Error) {
// Return slice
ret := make([]byte, 0)
// Get read buffers, defer putting back
br := fileBufferedReaderPool.Get(file)
defer fileBufferedReaderPool.Put(br)
// Read through file until null bytes / error
for {
// Read line
line, err := br.ReadBytes('\n')
if err != nil {
if err == io.EOF {
// EOF, add current to return slice and
// break-out. WIll not have hit delim
ret = append(ret, line...)
break
} else {
// Bad error, return
return nil, ErrFileRead.Wrap(err)
}
}
// Add current line to return slice
ret = append(ret, line...)
// Read the file into new file buffer and try return this
buf := &bytes.Buffer{}
_, err := br.WriteTo(buf)
if err != nil {
return nil, ErrFileRead.Wrap(err)
}
// Return!
return ret, nil
return buf.Bytes(), nil
}
// ScanFile scans a supplied file at file descriptor, using iterator function

Loading…
Cancel
Save