mirror of
https://github.com/square/certigo.git
synced 2024-04-21 12:32:40 +00:00
Use Go generate instead of a makefile (#279)
* Use Go generate instead of a makefile * Meet the go generate specifications
This commit is contained in:
@@ -1,5 +0,0 @@
|
||||
.PHONY: ctlogs
|
||||
|
||||
ctlogs:
|
||||
go run github.com/square/certigo/internal/gen-known-logs --package lib > ../../lib/ctlogs.go
|
||||
go fmt ../../lib/ctlogs.go
|
||||
@@ -6,4 +6,4 @@ Logs are fetched parsed from https://www.gstatic.com/ct/log_list/v2/all_logs_lis
|
||||
|
||||
## Usage
|
||||
|
||||
From the current directory (`certigo/internal/gen-known-logs`), run `make ctlogs`. This will fetch the list of logs and place generated code in [lib/ctlogs.go](../../lib/ctlogs.go).
|
||||
Run `go generate ./...` to regenerate known logs.
|
||||
@@ -6,10 +6,13 @@ import (
|
||||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"time"
|
||||
)
|
||||
|
||||
var packageName = flag.String("package", "lib", "Package for the generated code")
|
||||
var (
|
||||
out = flag.String("out", "", "Output file")
|
||||
)
|
||||
|
||||
// https://github.com/google/certificate-transparency-community-site/blob/master/docs/google/known-logs.md
|
||||
const knownLogsAddr = "https://www.gstatic.com/ct/log_list/v2/all_logs_list.json"
|
||||
@@ -24,8 +27,7 @@ func main() {
|
||||
|
||||
resp, err := http.Get(knownLogsAddr)
|
||||
if err != nil {
|
||||
log.Printf("Failed to fetch the list of known CT logs: %v", err)
|
||||
return
|
||||
log.Fatalf("Failed to fetch the list of known CT logs: %v", err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
@@ -40,11 +42,16 @@ func main() {
|
||||
}
|
||||
|
||||
if err := json.NewDecoder(resp.Body).Decode(&logs); err != nil {
|
||||
log.Printf("Failed to parse the list of known CT logs: %v", err)
|
||||
return
|
||||
log.Fatalf("Failed to parse the list of known CT logs: %v", err)
|
||||
}
|
||||
|
||||
fmt.Printf(`// Autogenerated with github.com/square/certigo/internal/gen-known-logs
|
||||
f, err := os.Create(*out)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to open file %s", *out)
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
fmt.Fprintf(f, `// Code generated by github.com/square/certigo/internal/gen-known-logs; DO NOT EDIT
|
||||
// Generated at %s
|
||||
package %s
|
||||
|
||||
@@ -54,16 +61,16 @@ type ctLog struct {
|
||||
}
|
||||
|
||||
var knownLogs = map[string]*ctLog{
|
||||
`, time.Now().Format(time.RFC3339), *packageName)
|
||||
`, time.Now().Format(time.RFC3339), os.Getenv("GOPACKAGE"))
|
||||
knownLogs := make(map[string]*ctLog)
|
||||
for _, op := range logs.Operators {
|
||||
for _, l := range op.Logs {
|
||||
fmt.Printf("\t%q: {operator: %q, url: %q},\n", l.ID, op.Name, l.URL)
|
||||
fmt.Fprintf(f, "\t%q: {operator: %q, url: %q},\n", l.ID, op.Name, l.URL)
|
||||
knownLogs[l.ID] = &ctLog{
|
||||
operator: op.Name,
|
||||
url: l.URL,
|
||||
}
|
||||
}
|
||||
}
|
||||
fmt.Println("}")
|
||||
fmt.Fprintln(f, "}")
|
||||
}
|
||||
|
||||
@@ -11,6 +11,9 @@ import (
|
||||
ctutil "github.com/google/certificate-transparency-go/x509util"
|
||||
)
|
||||
|
||||
//go:generate go run github.com/square/certigo/internal/gen-known-logs --out ctlogs.go
|
||||
//go:generate go fmt ctlogs.go
|
||||
|
||||
func parseSCTList(cert *x509.Certificate) []*simpleSCT {
|
||||
// ctutil contains a fork of crypto/x509 with support for SCTs. We must re-parse the
|
||||
// whole certificate to get at them, so do a quick check to see if the SCT extension
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
// Autogenerated with github.com/square/certigo/internal/gen-known-logs
|
||||
// Generated at 2022-06-29T17:31:27-07:00
|
||||
// Code generated by github.com/square/certigo/internal/gen-known-logs; DO NOT EDIT
|
||||
// Generated at 2022-06-29T22:18:11-07:00
|
||||
package lib
|
||||
|
||||
type ctLog struct {
|
||||
|
||||
Reference in New Issue
Block a user