fsentry

package module
v0.0.11 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 8, 2024 License: GPL-3.0 Imports: 7 Imported by: 0

README

fsentry

Allows storing hierarchical data in files and folders on the file system with json descriptions and creation/update timestamps.


Examples:

How to init a repository:

// Initializing the fsentry repository.
db := fsentry.NewFSEntry("test",
    fsentry.WithPretty(), // If you want to store json metadata files in a pretty format.
)
// Check if a repository folder has been created and if not, create one.
err := db.Init()
if err != nil {
    t.Fatal(err)
}
// If you want to delete the fsentry repository you can user Drop() method.
// db.Drop()

Create a folder:



// Create a folder in the root of the storage.
_, err = db.CreateFolder("f1", nil)
if err != nil {
    t.Fatal(err)
}
// Create a folder "f2" inside the folder "f1".
_, err = db.CreateFolder("f2", nil, "f1")
if err != nil {
    t.Fatal(err)
}
// Create a "f3" folder inside the "f2" folder, which is inside the "f1" folder.
_, err = db.CreateFolder("f3", nil, "f1", "f2")
if err != nil {
    t.Fatal(err)
}

Create an entry:

// Some type with useful information that we will store inside the entry.
type Data struct {
    Title string
    Value int
}
// Create an entry in the root of the repository.
err = db.CreateEntry("e1", Data{"hello", 10})
if err != nil {
    t.Fatal(err)
}
// Create an entry in the "f1" folder.
err = db.CreateEntry("e2", Data{"bye", 20}, "f1")
if err != nil {
    t.Fatal(err)
}

Create a binary file:

// Create a binary file in the root of the repository.
err = db.CreateBinary("b1", []byte("some binary data"))
if err != nil {
    t.Fatal(err)
}
// Create a binary file in the "f2" folder.
err = db.CreateBinary("b2", []byte("more binary data"), "f1", "f2")
if err != nil {
    t.Fatal(err)
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func WithPretty added in v0.0.9

func WithPretty() func(fs *FSEntry)

Types

type FSEntry

type FSEntry struct {
	// contains filtered or unexported fields
}

func (*FSEntry) CreateBinary added in v0.0.6

func (db *FSEntry) CreateBinary(name string, data []byte, path ...string) error

func (*FSEntry) CreateEntry

func (db *FSEntry) CreateEntry(name string, data interface{}, path ...string) error

func (*FSEntry) CreateFolder

func (db *FSEntry) CreateFolder(name string, data interface{}, path ...string) (*entity.FolderInfo, error)

func (*FSEntry) Drop

func (db *FSEntry) Drop() error

func (*FSEntry) DuplicateEntry

func (db *FSEntry) DuplicateEntry(srcName, dstName string, path ...string) error

func (*FSEntry) DuplicateFolder

func (db *FSEntry) DuplicateFolder(srcName, dstName string, path ...string) (*entity.FolderInfo, error)

func (*FSEntry) GetBinary added in v0.0.6

func (db *FSEntry) GetBinary(name string, path ...string) ([]byte, error)

func (*FSEntry) GetEntry

func (db *FSEntry) GetEntry(name string, path ...string) (*entity.Entry, error)

func (*FSEntry) GetFolder

func (db *FSEntry) GetFolder(name string, path ...string) (*entity.FolderInfo, error)

func (*FSEntry) Init

func (db *FSEntry) Init() error

func (*FSEntry) List

func (db *FSEntry) List(path ...string) (*entity.List, error)

func (*FSEntry) MoveBinary added in v0.0.6

func (db *FSEntry) MoveBinary(oldName, newName string, path ...string) error

func (*FSEntry) MoveEntry

func (db *FSEntry) MoveEntry(oldName, newName string, path ...string) error

func (*FSEntry) MoveFolder

func (db *FSEntry) MoveFolder(oldName, newName string, path ...string) (*entity.FolderInfo, error)

func (*FSEntry) RemoveBinary added in v0.0.6

func (db *FSEntry) RemoveBinary(name string, path ...string) error

func (*FSEntry) RemoveEntry

func (db *FSEntry) RemoveEntry(name string, path ...string) error

func (*FSEntry) RemoveFolder

func (db *FSEntry) RemoveFolder(name string, path ...string) error

func (*FSEntry) UpdateBinary added in v0.0.6

func (db *FSEntry) UpdateBinary(name string, data []byte, path ...string) error

func (*FSEntry) UpdateEntry

func (db *FSEntry) UpdateEntry(name string, data interface{}, path ...string) error

func (*FSEntry) UpdateFolder

func (db *FSEntry) UpdateFolder(name string, data interface{}, path ...string) (*entity.FolderInfo, error)

func (*FSEntry) UpdateFolderNameWithoutTimestamp added in v0.0.3

func (db *FSEntry) UpdateFolderNameWithoutTimestamp(name, newName string, path ...string) error

type IFSEntry

type IFSEntry interface {
	Init() error
	Drop() error
	List(path ...string) (*entity.List, error)

	CreateFolder(name string, data interface{}, path ...string) (*entity.FolderInfo, error)
	GetFolder(name string, path ...string) (*entity.FolderInfo, error)
	MoveFolder(oldName, newName string, path ...string) (*entity.FolderInfo, error)
	UpdateFolder(name string, data interface{}, path ...string) (*entity.FolderInfo, error)
	RemoveFolder(name string, path ...string) error
	DuplicateFolder(srcName, dstName string, path ...string) (*entity.FolderInfo, error)
	UpdateFolderNameWithoutTimestamp(name, newName string, path ...string) error

	CreateEntry(name string, data interface{}, path ...string) error
	GetEntry(name string, path ...string) (*entity.Entry, error)
	MoveEntry(oldName, newName string, path ...string) error
	UpdateEntry(name string, data interface{}, path ...string) error
	RemoveEntry(name string, path ...string) error
	DuplicateEntry(srcName, dstName string, path ...string) error

	CreateBinary(name string, data []byte, path ...string) error
	GetBinary(name string, path ...string) ([]byte, error)
	MoveBinary(oldName, newName string, path ...string) error
	UpdateBinary(name string, data []byte, path ...string) error
	RemoveBinary(name string, path ...string) error
}

func NewFSEntry

func NewFSEntry(root string, ops ...func(fs *FSEntry)) IFSEntry

Directories

Path Synopsis
examples
internal
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL