]> Sergey Matveev's repositories - meta4ra.git/blobdiff - cmd/meta4-check/main.go
OpenSSH signatures inclusion support
[meta4ra.git] / cmd / meta4-check / main.go
index 45b08bdd6a0d446bf5e694627569a1ea7e24e30f..51338077e0289c8f23ef5350cd54f5f814ea3078 100644 (file)
@@ -49,10 +49,23 @@ func main() {
                        log.Fatalln(err)
                }
                for _, f := range meta.Files {
-                       if f.Signature != nil && *extractSig {
+                       for _, sig := range f.Signature {
+                               if !*extractSig {
+                                       continue
+                               }
+                               var fn string
+                               switch sig.MediaType {
+                               case meta4ra.SigMediaTypePGP:
+                                       fn = f.Name + ".asc"
+                               case meta4ra.SigMediaTypeSSH:
+                                       fn = f.Name + ".sig"
+                               }
+                               if fn == "" {
+                                       continue
+                               }
                                if err = os.WriteFile(
-                                       f.Name+".asc",
-                                       []byte(f.Signature.Signature),
+                                       fn,
+                                       []byte(strings.TrimPrefix(sig.Signature, "\n")),
                                        fs.FileMode(0666),
                                ); err != nil {
                                        fmt.Println("Error:", f.Name, "can not save signature:", err)