@@ -25,21 +25,22 @@ var (
2525 logLevel * slog.LevelVar
2626 target string
2727 matchLogger * slog.Logger
28-
29- filename string = "lyrics.dat"
30- delayWord time.Duration = 200 * time .Millisecond
31- delayLine time.Duration = 1000 * time .Millisecond
32-
3328 lyricsBytes []byte
29+
30+ listenAddr string = ":23"
31+ lyricsFilename string = "lyrics.dat"
32+ gitVersion string = "unknown"
33+ delayWord time.Duration = 200 * time .Millisecond
34+ delayLine time.Duration = 1000 * time .Millisecond
3435)
3536
36- func LoadLyricsFromFile (filename string ) (err error ) {
37- lyricsBytes , err = os .ReadFile (filename )
37+ func LoadLyricsFromFile (lyricsFilename string ) (err error ) {
38+ lyricsBytes , err = os .ReadFile (lyricsFilename )
3839 if err != nil {
3940 return err
4041 }
4142
42- logger .Info ("loaded lyrics from file" , "file" , filename , "bytes" , len (lyricsBytes ))
43+ logger .Info ("loaded lyrics from file" , "file" , lyricsFilename , "bytes" , len (lyricsBytes ))
4344
4445 return nil
4546}
@@ -248,7 +249,7 @@ func (handler internalTelnetHandler) ServeTELNET(ctx telnet.Context, w telnet.Wr
248249func LaunchTelnetServer (ctx context.Context ) error {
249250 logger .Info ("starting telnet server" )
250251
251- err := telnet .ListenAndServe (":23" , TelnetHandler )
252+ err := telnet .ListenAndServe (listenAddr , TelnetHandler )
252253 if err != nil {
253254 return err
254255 }
@@ -261,17 +262,22 @@ func run(ctx context.Context, stdout io.Writer, stderr io.Writer, getenv func(st
261262 defer stop ()
262263
263264 setupLogger (ctx , stdout )
265+ setupEnv ()
264266
265267 commit , buildDate , _ := getBuildInfo ()
266268
269+ logger .Info ("initializing rickrolld" ,
270+ "gitVersion" , gitVersion ,
271+ "buildDate" , buildDate ,
272+ "commit" , commit )
273+
267274 logger .Info ("starting rickrolld" ,
268- "filename" , filename ,
275+ "listenAddr" , listenAddr ,
276+ "lyricsFilename" , lyricsFilename ,
269277 "delayWord" , delayWord ,
270- "delayLine" , delayLine ,
271- "commit" , commit ,
272- "buildDate" , buildDate )
278+ "delayLine" , delayLine )
273279
274- err = LoadLyricsFromFile (filename )
280+ err = LoadLyricsFromFile (lyricsFilename )
275281 if err != nil {
276282 return err
277283 }
@@ -281,19 +287,22 @@ func run(ctx context.Context, stdout io.Writer, stderr io.Writer, getenv func(st
281287 return err
282288 }
283289
284- logger .Info ("Done" )
290+ logger .Info ("stopping rickrolld" ,
291+ "gitVersion" , gitVersion ,
292+ "buildDate" , buildDate ,
293+ "commit" , commit )
285294
286295 return nil
287296}
288297
289- func getBuildInfo () (commit , buildDate string , dirty bool ) {
298+ func getBuildInfo () (commit , buildDate string , modified bool ) {
290299 buildInfo , ok := debug .ReadBuildInfo ()
291300
292301 if ! ok {
293302 return
294303 }
295304
296- dirty = false
305+ modified = false
297306
298307 for _ , setting := range buildInfo .Settings {
299308 switch setting .Key {
@@ -302,13 +311,25 @@ func getBuildInfo() (commit, buildDate string, dirty bool) {
302311 case "vcs.time" :
303312 buildDate = setting .Value
304313 case "vcs.modified" :
305- dirty = true
314+ modified = true
306315 }
307316 }
308317
309318 return
310319}
311320
321+ func setupEnv () {
322+ if e := os .Getenv ("RICKROLL_LISTEN_ADDR" ); e != "" {
323+ listenAddr = e
324+ logger .Info ("listenAddr loaded from env" , "listenAddr" , listenAddr )
325+ }
326+
327+ if e := os .Getenv ("RICKROLL_LYRICS_FILENAME" ); e != "" {
328+ lyricsFilename = e
329+ logger .Info ("lyricsFilename loaded from env" , "lyricsFilename" , lyricsFilename )
330+ }
331+ }
332+
312333func setupLogger (ctx context.Context , stdout io.Writer ) {
313334 logLevel = new (slog.LevelVar )
314335
@@ -320,7 +341,7 @@ func setupLogger(ctx context.Context, stdout io.Writer) {
320341}
321342
322343func cleanup () {
323- logger .Info ("Interrupt detected, exiting" )
344+ logger .Info ("interrupting rickrolld" , "gitVersion" , gitVersion )
324345}
325346
326347// main does as little as we can get away with.
@@ -330,7 +351,7 @@ func main() {
330351 go func () {
331352 <- c
332353 cleanup ()
333- os .Exit (1 )
354+ os .Exit (0 )
334355 }()
335356
336357 ctx := context .Background ()
0 commit comments