aboutsummaryrefslogtreecommitdiff
path: root/utils.go
diff options
context:
space:
mode:
authorEmiliano Ciavatta2020-04-01 12:21:58 +0000
committerEmiliano Ciavatta2020-04-01 12:21:58 +0000
commit2b9ccbe76c6975fe7cd09a3260ba459d59b9970a (patch)
tree6eaf94a797261f2db0736d4abe999db219fcad7a /utils.go
Initial commit
Diffstat (limited to 'utils.go')
-rw-r--r--utils.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/utils.go b/utils.go
new file mode 100644
index 0000000..cc99d93
--- /dev/null
+++ b/utils.go
@@ -0,0 +1,30 @@
+package main
+
+import (
+ "crypto/sha256"
+ "io"
+ "log"
+ "os"
+)
+
+const invalidHashString = "invalid"
+
+func Sha256Sum(fileName string) (string, error) {
+ f, err := os.Open(fileName)
+ if err != nil {
+ return invalidHashString, err
+ }
+ defer func() {
+ err = f.Close()
+ if err != nil {
+ log.Println("Cannot close file " + fileName)
+ }
+ }()
+
+ h := sha256.New()
+ if _, err := io.Copy(h, f); err != nil {
+ return invalidHashString, err
+ }
+
+ return string(h.Sum(nil)), nil
+}