Add version variables

This commit is contained in:
2025-05-24 18:30:21 +04:00
parent 9917f61db1
commit bad7b4a304
12 changed files with 196 additions and 133 deletions

View File

@@ -6,7 +6,7 @@ COPY go.mod go.sum ./
COPY ../../pkg ./pkg
COPY ../../cmd/api ./cmd/api
RUN CGO_ENABLED=0 go build -ldflags "-s -w" -o api ./cmd/api/main.go
RUN CGO_ENABLED=0 go build -ldflags "-s -w" -o api ./cmd/api
FROM gcr.io/distroless/static-debian12:latest

View File

@@ -2,8 +2,11 @@ package main
import (
"context"
"flag"
"fmt"
"os"
"os/signal"
"strings"
"syscall"
"github.com/aykhans/bsky-feedgen/pkg/api"
@@ -15,11 +18,21 @@ import (
_ "go.uber.org/automaxprocs"
)
type flags struct {
version bool
}
func main() {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
go listenForTermination(func() { cancel() })
flags := getFlags()
if flags.version == true {
fmt.Printf("API version: %v\n", version)
os.Exit(0)
}
apiConfig, errMap := config.NewAPIConfig()
if errMap != nil {
logger.Log.Error("API ENV error", "error", errMap.ToStringMap())
@@ -59,3 +72,33 @@ func listenForTermination(do func()) {
<-sigChan
do()
}
func getFlags() *flags {
flags := &flags{}
flag.Usage = func() {
fmt.Println(
`Usage:
consumer [flags]
Flags:
-version version information
-h, -help Display this help message`)
}
flag.BoolVar(&flags.version, "version", false, "print version information")
flag.Parse()
if args := flag.Args(); len(args) > 0 {
if len(args) == 1 {
fmt.Printf("unexpected argument: %s\n\n", args[0])
} else {
fmt.Printf("unexpected arguments: %v\n\n", strings.Join(args, ", "))
}
flag.CommandLine.Usage()
os.Exit(1)
}
return flags
}

3
cmd/api/version.go Normal file
View File

@@ -0,0 +1,3 @@
package main
const version = "0.1.0"

View File

@@ -6,7 +6,7 @@ COPY go.mod go.sum ./
COPY ../../pkg ./pkg
COPY ../../cmd/consumer ./cmd/consumer
RUN CGO_ENABLED=0 go build -ldflags "-s -w" -o consumer ./cmd/consumer/main.go
RUN CGO_ENABLED=0 go build -ldflags "-s -w" -o consumer ./cmd/consumer
FROM gcr.io/distroless/static-debian12:latest

View File

@@ -20,42 +20,24 @@ import (
_ "go.uber.org/automaxprocs"
)
type flags struct {
version bool
cursorOption types.ConsumerCursor
}
func main() {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
go listenForTermination(func() { cancel() })
flag.Usage = func() {
fmt.Println(
`Usage:
consumer [flags]
Flags:
-h, -help Display this help message
-cursor string Specify the starting point for data consumption (default: last-consumed)
Options:
last-consumed: Resume from the last processed data in storage
first-stream: Start from the beginning of the firehose
current-stream: Start from the current position in the firehose stream`)
flags := getFlags()
if flags.version == true {
fmt.Printf("Consumer version: %v\n", version)
os.Exit(0)
}
var cursorOption types.ConsumerCursor
flag.Var(&cursorOption, "cursor", "")
flag.Parse()
if args := flag.Args(); len(args) > 0 {
if len(args) == 1 {
fmt.Printf("unexpected argument: %s\n\n", args[0])
} else {
fmt.Printf("unexpected arguments: %v\n\n", strings.Join(args, ", "))
}
flag.CommandLine.Usage()
os.Exit(1)
}
if cursorOption == "" {
_ = cursorOption.Set("")
if flags.cursorOption == "" {
_ = flags.cursorOption.Set("")
}
consumerConfig, errMap := config.NewConsumerConfig()
@@ -89,7 +71,7 @@ Flags:
ctx,
postCollection,
"wss://bsky.network",
cursorOption,
flags.cursorOption,
consumerConfig.PostMaxDate, // Save only posts created before PostMaxDate
10*time.Second, // Save consumed data to MongoDB every 10 seconds
)
@@ -121,3 +103,39 @@ func listenForTermination(do func()) {
<-sigChan
do()
}
func getFlags() *flags {
flags := &flags{}
flag.Usage = func() {
fmt.Println(
`Usage:
consumer [flags]
Flags:
-version version information
-h, -help Display this help message
-cursor string Specify the starting point for data consumption (default: last-consumed)
Options:
last-consumed: Resume from the last processed data in storage
first-stream: Start from the beginning of the firehose
current-stream: Start from the current position in the firehose stream`)
}
flag.BoolVar(&flags.version, "version", false, "print version information")
flag.Var(&flags.cursorOption, "cursor", "Specify the starting point for data consumption")
flag.Parse()
if args := flag.Args(); len(args) > 0 {
if len(args) == 1 {
fmt.Printf("unexpected argument: %s\n\n", args[0])
} else {
fmt.Printf("unexpected arguments: %v\n\n", strings.Join(args, ", "))
}
flag.CommandLine.Usage()
os.Exit(1)
}
return flags
}

3
cmd/consumer/version.go Normal file
View File

@@ -0,0 +1,3 @@
package main
const version = "0.1.0"

View File

@@ -6,7 +6,7 @@ COPY go.mod go.sum ./
COPY ../../pkg ./pkg
COPY ../../cmd/feedgen/az ./cmd/feedgen/az
RUN CGO_ENABLED=0 go build -ldflags "-s -w" -o feedgen ./cmd/feedgen/az/main.go
RUN CGO_ENABLED=0 go build -ldflags "-s -w" -o feedgen ./cmd/feedgen/az
FROM gcr.io/distroless/static-debian12:latest

View File

@@ -20,41 +20,24 @@ import (
_ "go.uber.org/automaxprocs"
)
type flags struct {
version bool
cursorOption types.GeneratorCursor
}
func main() {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
go listenForTermination(func() { cancel() })
flag.Usage = func() {
fmt.Println(
`Usage:
feedgen-az [flags]
Flags:
-h, -help Display this help message
-cursor string Specify the starting point for feed data generation (default: last-generated)
Options:
last-generated: Resume from the last generated data in storage
first-post: Start from the beginning of the posts`)
flags := getFlags()
if flags.version == true {
fmt.Printf("Feedgen Az version: %v\n", version)
os.Exit(0)
}
var cursorOption types.GeneratorCursor
flag.Var(&cursorOption, "cursor", "")
flag.Parse()
if args := flag.Args(); len(args) > 0 {
if len(args) == 1 {
fmt.Printf("unexpected argument: %s\n\n", args[0])
} else {
fmt.Printf("unexpected arguments: %v\n\n", strings.Join(args, ", "))
}
flag.CommandLine.Usage()
os.Exit(1)
}
if cursorOption == "" {
_ = cursorOption.Set("")
if flags.cursorOption == "" {
_ = flags.cursorOption.Set("")
}
feedGenAzConfig, errMap := config.NewFeedGenAzConfig()
@@ -89,7 +72,7 @@ Flags:
feedGeneratorAz := feedgenAz.NewGenerator(postCollection, feedAzCollection)
startCrons(ctx, feedGenAzConfig, feedGeneratorAz, feedAzCollection, cursorOption)
startCrons(ctx, feedGenAzConfig, feedGeneratorAz, feedAzCollection, flags.cursorOption)
logger.Log.Info("Cron jobs started")
<-ctx.Done()
@@ -139,3 +122,38 @@ func listenForTermination(do func()) {
<-sigChan
do()
}
func getFlags() *flags {
flags := &flags{}
flag.Usage = func() {
fmt.Println(
`Usage:
feedgen-az [flags]
Flags:
-version version information
-h, -help Display this help message
-cursor string Specify the starting point for feed data generation (default: last-generated)
Options:
last-generated: Resume from the last generated data in storage
first-post: Start from the beginning of the posts`)
}
flag.BoolVar(&flags.version, "version", false, "print version information")
flag.Var(&flags.cursorOption, "cursor", "Specify the starting point for feed data generation")
flag.Parse()
if args := flag.Args(); len(args) > 0 {
if len(args) == 1 {
fmt.Printf("unexpected argument: %s\n\n", args[0])
} else {
fmt.Printf("unexpected arguments: %v\n\n", strings.Join(args, ", "))
}
flag.CommandLine.Usage()
os.Exit(1)
}
return flags
}

View File

@@ -0,0 +1,3 @@
package main
const version = "0.1.0"