parent
46ab6826d8
commit
e8963fed17
@ -0,0 +1,2 @@ |
|||||||
|
sha512sum |
||||||
|
sha512sum.exe |
||||||
@ -0,0 +1,4 @@ |
|||||||
|
|
||||||
|
|
||||||
|
build: |
||||||
|
go build .
|
||||||
@ -0,0 +1,3 @@ |
|||||||
|
module lcthw.dev/go/go-coreutils/sha512sum |
||||||
|
|
||||||
|
go 1.25.3 |
||||||
@ -0,0 +1,45 @@ |
|||||||
|
package main |
||||||
|
|
||||||
|
import ( |
||||||
|
"fmt" |
||||||
|
"flag" |
||||||
|
"os" |
||||||
|
"log" |
||||||
|
"crypto/sha512" |
||||||
|
) |
||||||
|
|
||||||
|
type Opts struct { |
||||||
|
Inputs []string |
||||||
|
} |
||||||
|
|
||||||
|
func parse_opts() Opts { |
||||||
|
var opts Opts |
||||||
|
|
||||||
|
flag.Parse() |
||||||
|
opts.Inputs = flag.Args() |
||||||
|
|
||||||
|
return opts |
||||||
|
} |
||||||
|
|
||||||
|
func to_hex(hash [sha512.Size]byte) string { |
||||||
|
result := "" |
||||||
|
|
||||||
|
for _, b := range hash { |
||||||
|
result += fmt.Sprintf("%x", b) |
||||||
|
} |
||||||
|
|
||||||
|
return result |
||||||
|
} |
||||||
|
|
||||||
|
func main() { |
||||||
|
opts := parse_opts() |
||||||
|
|
||||||
|
for _, fname := range opts.Inputs { |
||||||
|
in_data, err := os.ReadFile(fname) |
||||||
|
if err != nil { log.Fatal(err) } |
||||||
|
|
||||||
|
hash := sha512.Sum512(in_data) |
||||||
|
|
||||||
|
fmt.Println(to_hex(hash), fname) |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue