mirror of
https://github.com/datarhei/core.git
synced 2025-10-06 16:37:04 +08:00
Fix error if history file doesn't exist
This commit is contained in:
@@ -203,7 +203,7 @@ func NewRootedDiskFilesystem(config RootedDiskConfig) (Filesystem, error) {
|
|||||||
|
|
||||||
info, err := os.Stat(fs.root)
|
info, err := os.Stat(fs.root)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, os.ErrNotExist
|
||||||
}
|
}
|
||||||
|
|
||||||
if !info.IsDir() {
|
if !info.IsDir() {
|
||||||
@@ -285,7 +285,7 @@ func (fs *diskFilesystem) Symlink(oldname, newname string) error {
|
|||||||
|
|
||||||
info, err := os.Lstat(oldname)
|
info, err := os.Lstat(oldname)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return os.ErrNotExist
|
||||||
}
|
}
|
||||||
|
|
||||||
if info.Mode()&os.ModeSymlink != 0 {
|
if info.Mode()&os.ModeSymlink != 0 {
|
||||||
@@ -494,7 +494,7 @@ func (fs *diskFilesystem) Stat(path string) (FileInfo, error) {
|
|||||||
|
|
||||||
info, err := os.Lstat(path)
|
info, err := os.Lstat(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, os.ErrNotExist
|
||||||
}
|
}
|
||||||
|
|
||||||
dif.mode = info.Mode()
|
dif.mode = info.Mode()
|
||||||
@@ -502,7 +502,7 @@ func (fs *diskFilesystem) Stat(path string) (FileInfo, error) {
|
|||||||
if info.Mode()&os.ModeSymlink != 0 {
|
if info.Mode()&os.ModeSymlink != 0 {
|
||||||
info, err = os.Stat(path)
|
info, err = os.Stat(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, os.ErrNotExist
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -2,6 +2,7 @@ package session
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"errors"
|
||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
@@ -39,8 +40,12 @@ func NewHistorySource(fs fs.Filesystem, path string) (SnapshotSource, error) {
|
|||||||
path: path,
|
path: path,
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, err := s.fs.Stat(s.path); err == os.ErrNotExist {
|
if _, err := s.fs.Stat(s.path); err != nil {
|
||||||
return nil, nil
|
if errors.Is(err, os.ErrNotExist) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
data, err := s.fs.ReadFile(s.path)
|
data, err := s.fs.ReadFile(s.path)
|
||||||
|
26
session/snapshot_test.go
Normal file
26
session/snapshot_test.go
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
package session
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/datarhei/core/v16/io/fs"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestHistorySource(t *testing.T) {
|
||||||
|
memfs, err := fs.NewMemFilesystem(fs.MemConfig{})
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
s, err := NewHistorySource(memfs, "/foobar.json")
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Nil(t, s)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestHistorySourceDisk(t *testing.T) {
|
||||||
|
diskfs, err := fs.NewDiskFilesystem(fs.DiskConfig{})
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
s, err := NewHistorySource(diskfs, "./foobar.json")
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Nil(t, s)
|
||||||
|
}
|
Reference in New Issue
Block a user