Skip to content

Commit 04a5ad5

Browse files
committed
generate sha1 for package files, fixes grafana#913
1 parent cc14522 commit 04a5ad5

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

build.go

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package main
55
import (
66
"bytes"
77
"crypto/md5"
8+
"crypto/sha1"
89
"encoding/json"
910
"flag"
1011
"fmt"
@@ -85,17 +86,21 @@ func main() {
8586
case "package":
8687
grunt(gruntBuildArg("release")...)
8788
createLinuxPackages()
89+
sha1FilesInDist()
8890

8991
case "pkg-rpm":
9092
grunt(gruntBuildArg("release")...)
9193
createRpmPackages()
94+
sha1FilesInDist()
9295

9396
case "pkg-deb":
9497
grunt(gruntBuildArg("release")...)
9598
createDebPackages()
99+
sha1FilesInDist()
96100

97101
case "latest":
98102
makeLatestDistCopies()
103+
sha1FilesInDist()
99104

100105
case "clean":
101106
clean()
@@ -501,3 +506,38 @@ func md5File(file string) error {
501506

502507
return out.Close()
503508
}
509+
510+
func sha1FilesInDist() {
511+
filepath.Walk("./dist", func(path string, f os.FileInfo, err error) error {
512+
if strings.Contains(path, ".sha1") == false {
513+
sha1File(path)
514+
}
515+
return nil
516+
})
517+
}
518+
519+
func sha1File(file string) error {
520+
fd, err := os.Open(file)
521+
if err != nil {
522+
return err
523+
}
524+
defer fd.Close()
525+
526+
h := sha1.New()
527+
_, err = io.Copy(h, fd)
528+
if err != nil {
529+
return err
530+
}
531+
532+
out, err := os.Create(file + ".sha1")
533+
if err != nil {
534+
return err
535+
}
536+
537+
_, err = fmt.Fprintf(out, "%x\n", h.Sum(nil))
538+
if err != nil {
539+
return err
540+
}
541+
542+
return out.Close()
543+
}

0 commit comments

Comments
 (0)