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