+8
-1
cmd/plcbundle/commands/common.go
+8
-1
cmd/plcbundle/commands/common.go
···
132
// Create PLC client if URL provided
133
var client *plcclient.Client
134
if opts.PLCURL != "" {
135
+
// Build user agent with version
136
+
userAgent := fmt.Sprintf("plcbundle/%s",
137
+
GetVersion())
138
+
139
+
client = plcclient.NewClient(
140
+
opts.PLCURL,
141
+
plcclient.WithUserAgent(userAgent),
142
+
)
143
}
144
145
// Set handle resolver URL from flag or option
+11
internal/plcclient/client.go
+11
internal/plcclient/client.go
···
19
httpClient *http.Client
20
rateLimiter *RateLimiter
21
logger Logger
22
}
23
24
// Logger is a simple logging interface
···
48
}
49
}
50
51
// WithTimeout sets a custom HTTP timeout
52
func WithTimeout(timeout time.Duration) ClientOption {
53
return func(c *Client) {
···
75
},
76
rateLimiter: NewRateLimiter(90, time.Minute),
77
logger: defaultLogger{},
78
}
79
80
for _, opt := range opts {
···
153
if err != nil {
154
return nil, 0, err
155
}
156
157
// Add query parameters
158
q := req.URL.Query()
···
252
if err != nil {
253
return nil, err
254
}
255
256
resp, err := c.httpClient.Do(req)
257
if err != nil {
···
19
httpClient *http.Client
20
rateLimiter *RateLimiter
21
logger Logger
22
+
userAgent string
23
}
24
25
// Logger is a simple logging interface
···
49
}
50
}
51
52
+
// WithUserAgent sets a custom user agent string
53
+
func WithUserAgent(userAgent string) ClientOption {
54
+
return func(c *Client) {
55
+
c.userAgent = userAgent
56
+
}
57
+
}
58
+
59
// WithTimeout sets a custom HTTP timeout
60
func WithTimeout(timeout time.Duration) ClientOption {
61
return func(c *Client) {
···
83
},
84
rateLimiter: NewRateLimiter(90, time.Minute),
85
logger: defaultLogger{},
86
+
userAgent: "plcbundle/dev",
87
}
88
89
for _, opt := range opts {
···
162
if err != nil {
163
return nil, 0, err
164
}
165
+
req.Header.Set("User-Agent", c.userAgent)
166
167
// Add query parameters
168
q := req.URL.Query()
···
262
if err != nil {
263
return nil, err
264
}
265
+
req.Header.Set("User-Agent", c.userAgent)
266
267
resp, err := c.httpClient.Do(req)
268
if err != nil {