fix(pkg/storage/logfile): create logfile if not exists
This commit is contained in:
parent
ea83d43cd6
commit
a7722e028a
@ -4,6 +4,7 @@ import (
|
|||||||
"encoding/csv"
|
"encoding/csv"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
"path/filepath"
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -16,8 +17,19 @@ type csvLogfile struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (cl *csvLogfile) Read() ([]*types.MeasuredValue, error) {
|
func (cl *csvLogfile) Read() ([]*types.MeasuredValue, error) {
|
||||||
|
|
||||||
if _, err := os.Stat(cl.logfile); os.IsNotExist(err) {
|
if _, err := os.Stat(cl.logfile); os.IsNotExist(err) {
|
||||||
return nil, fmt.Errorf("%v: %v", errorLogfileNotFound, cl.logfile)
|
if _, err := os.Stat(filepath.Dir(cl.logfile)); os.IsNotExist(err) {
|
||||||
|
if err := os.MkdirAll(filepath.Dir(cl.logfile), 0755); err != nil {
|
||||||
|
return nil, fmt.Errorf("%v: %v", errorDirectoryCreate, filepath.Dir(cl.logfile))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
f, err := os.Create(cl.logfile)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("%v: %v", errorLogfileCreate, cl.logfile)
|
||||||
|
}
|
||||||
|
f.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
f, err := os.Open(cl.logfile)
|
f, err := os.Open(cl.logfile)
|
||||||
|
@ -3,6 +3,8 @@ package logfile
|
|||||||
import "errors"
|
import "errors"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
errorDirectoryCreate = errors.New("Can not create directory")
|
||||||
|
|
||||||
errorLogfileCreate = errors.New("Can not create logfile")
|
errorLogfileCreate = errors.New("Can not create logfile")
|
||||||
errorLogfileDecode = errors.New("Can not decode from reader")
|
errorLogfileDecode = errors.New("Can not decode from reader")
|
||||||
errorLogfileEncode = errors.New("Can not encode from writer")
|
errorLogfileEncode = errors.New("Can not encode from writer")
|
||||||
@ -13,10 +15,6 @@ var (
|
|||||||
errorLogfileUnmarshal = errors.New("Can not unmarshal values")
|
errorLogfileUnmarshal = errors.New("Can not unmarshal values")
|
||||||
errorLogfileWrite = errors.New("Can not write with given writer")
|
errorLogfileWrite = errors.New("Can not write with given writer")
|
||||||
|
|
||||||
errorParseFloat = errors.New("Can not parse float")
|
|
||||||
errorParseMeasurementUnit = errors.New("Can not parse mesaurement unit")
|
|
||||||
errorParseTime = errors.New("Can not parse time")
|
|
||||||
|
|
||||||
errorNoValidHumidityID = errors.New("No valid humidity id detected or available")
|
errorNoValidHumidityID = errors.New("No valid humidity id detected or available")
|
||||||
errorNoValidMesuredValue = errors.New("No mesured value detected or available")
|
errorNoValidMesuredValue = errors.New("No mesured value detected or available")
|
||||||
errorNoValidSensorID = errors.New("No sensor id detected or available")
|
errorNoValidSensorID = errors.New("No sensor id detected or available")
|
||||||
@ -24,5 +22,9 @@ var (
|
|||||||
errorNoValidTime = errors.New("No time detected or available")
|
errorNoValidTime = errors.New("No time detected or available")
|
||||||
errorNoValidTimePeriods = errors.New("No valid time periods")
|
errorNoValidTimePeriods = errors.New("No valid time periods")
|
||||||
|
|
||||||
|
errorParseFloat = errors.New("Can not parse float")
|
||||||
|
errorParseMeasurementUnit = errors.New("Can not parse mesaurement unit")
|
||||||
|
errorParseTime = errors.New("Can not parse time")
|
||||||
|
|
||||||
errorTypeSwitch = errors.New("Can not detect type via type switch")
|
errorTypeSwitch = errors.New("Can not detect type via type switch")
|
||||||
)
|
)
|
||||||
|
@ -16,7 +16,18 @@ type jsonLogfile struct {
|
|||||||
func (jl *jsonLogfile) Read() ([]*types.MeasuredValue, error) {
|
func (jl *jsonLogfile) Read() ([]*types.MeasuredValue, error) {
|
||||||
|
|
||||||
if _, err := os.Stat(jl.logfile); os.IsNotExist(err) {
|
if _, err := os.Stat(jl.logfile); os.IsNotExist(err) {
|
||||||
return nil, fmt.Errorf("%v: %v", errorLogfileNotFound, jl.logfile)
|
if _, err := os.Stat(filepath.Dir(jl.logfile)); os.IsNotExist(err) {
|
||||||
|
if err := os.MkdirAll(filepath.Dir(jl.logfile), 0755); err != nil {
|
||||||
|
return nil, fmt.Errorf("%v: %v", errorDirectoryCreate, filepath.Dir(jl.logfile))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
f, err := os.Create(jl.logfile)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("%v: %v", errorLogfileCreate, jl.logfile)
|
||||||
|
}
|
||||||
|
f.WriteString("{}")
|
||||||
|
f.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
f, err := os.Open(jl.logfile)
|
f, err := os.Open(jl.logfile)
|
||||||
|
@ -4,6 +4,7 @@ import (
|
|||||||
"encoding/xml"
|
"encoding/xml"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
|
||||||
"github.com/go-flucky/flucky/pkg/types"
|
"github.com/go-flucky/flucky/pkg/types"
|
||||||
)
|
)
|
||||||
@ -17,8 +18,19 @@ func (xl *xmlLogfile) GetLogfile() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (xl *xmlLogfile) Read() ([]*types.MeasuredValue, error) {
|
func (xl *xmlLogfile) Read() ([]*types.MeasuredValue, error) {
|
||||||
|
|
||||||
if _, err := os.Stat(xl.logfile); os.IsNotExist(err) {
|
if _, err := os.Stat(xl.logfile); os.IsNotExist(err) {
|
||||||
return nil, fmt.Errorf("%v: %v", errorLogfileNotFound, xl.logfile)
|
if _, err := os.Stat(filepath.Dir(xl.logfile)); os.IsNotExist(err) {
|
||||||
|
if err := os.MkdirAll(filepath.Dir(xl.logfile), 0755); err != nil {
|
||||||
|
return nil, fmt.Errorf("%v: %v", errorDirectoryCreate, filepath.Dir(xl.logfile))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
f, err := os.Create(xl.logfile)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("%v: %v", errorLogfileCreate, xl.logfile)
|
||||||
|
}
|
||||||
|
f.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
f, err := os.Open(xl.logfile)
|
f, err := os.Open(xl.logfile)
|
||||||
|
Loading…
Reference in New Issue
Block a user