summaryrefslogtreecommitdiff
path: root/internal/types
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-07-28 18:46:41 +0300
committerPaul Buetow <paul@buetow.org>2024-07-28 18:46:41 +0300
commit7fc95c18f169f0bfe0a5bc8a239ec5853619ec59 (patch)
tree930f45563c8254205e2cac60b2eff234649362ed /internal/types
parent8572fca487d124518e46f4fad1919cf98c5ae56a (diff)
initial posting real data over
Diffstat (limited to 'internal/types')
-rw-r--r--internal/types/entry.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/internal/types/entry.go b/internal/types/entry.go
index ca2a742..695c786 100644
--- a/internal/types/entry.go
+++ b/internal/types/entry.go
@@ -4,6 +4,7 @@ import (
"crypto/sha256"
"encoding/json"
"fmt"
+ "os"
"strings"
"sync"
)
@@ -63,6 +64,21 @@ func NewEntryFromCopy(other Entry) (Entry, error) {
return e.Update(other)
}
+func NewEntryFromFile(filePath string) (Entry, error) {
+ var e Entry
+ data, err := os.ReadFile(filePath)
+ if err != nil {
+ return e, err
+ }
+ e.Body = string(data)
+ if e.ID == "" {
+ e.ID = fmt.Sprintf("%x", sha256.Sum256([]byte(e.Body)))
+ }
+ e.initialize()
+ e.Checksum()
+ return e, nil
+}
+
func (e *Entry) initialize() {
e.mu = &sync.Mutex{}
e.checksumDirty = true