...
1
2
3
4
5 package main
6
7 import (
8 "context"
9 "os"
10
11 "cloud.google.com/go/storage"
12 "google.golang.org/api/option"
13
14 "edge-infra.dev/hack/tools/apk-repository/internal"
15 "edge-infra.dev/pkg/lib/fog"
16 )
17
18 var (
19 bind = ":8080"
20 credentials string
21 bucket string
22 client *storage.Client
23 )
24
25 func main() {
26 ctx := context.Background()
27 bucket = os.Getenv("APK_REPO_BUCKET")
28
29 if bucket == "" {
30 panic("must set bucket name in order to run")
31 }
32
33 if envBind := os.Getenv("APK_REPO_BIND_ADDRESS"); envBind != "" {
34 bind = envBind
35 }
36
37 logger := fog.New()
38
39 var err error
40 if credentials != "" {
41 client, err = storage.NewClient(ctx, option.WithCredentialsFile(credentials))
42 } else {
43 client, err = storage.NewClient(ctx)
44 }
45
46 if err != nil {
47 logger.Error(err, "Failed to create client")
48 panic(err)
49 }
50
51 bs, err := internal.NewBucketServer(ctx, client, bucket, logger)
52 if err != nil {
53 logger.Error(err, "Failed to create server")
54 panic(err)
55 }
56
57 if err = bs.Run(bind); err != nil {
58 panic(err)
59 }
60 }
61
View as plain text