@@ -27,7 +27,7 @@ func cmdBridge(args []string) {
2727 nameArg := fs .String ("name" , os .Getenv ("NAME" ), "channel name (single-stream mode only)" )
2828 fs .StringVar (nameArg , "n" , os .Getenv ("NAME" ), "alias for --name" )
2929 descriptionArg := fs .String ("description" , os .Getenv ("DESCRIPTION" ), "channel description" )
30- fs .StringVar (descriptionArg , "D " , os .Getenv ("DESCRIPTION" ), "alias for --description" )
30+ fs .StringVar (descriptionArg , "U " , os .Getenv ("DESCRIPTION" ), "alias for --description" )
3131 tagsArg := fs .String ("tags" , os .Getenv ("TAGS" ), "comma-separated tags (max 5)" )
3232 fs .StringVar (tagsArg , "T" , os .Getenv ("TAGS" ), "alias for --tags" )
3333 languageArg := fs .String ("language" , os .Getenv ("LANGUAGE" ), "ISO 639-1 language code (e.g. en, ja)" )
@@ -72,7 +72,7 @@ func cmdBridge(args []string) {
7272 proxyStr := addProxyFlag (fs )
7373
7474 // --- Config ---
75- configPathBridge , dumpConfigBridge := addConfigFlags (fs )
75+ configPathBridge , dumpConfigBridge := addConfigFlags (fs , configFlagOpts { ConfigShort : "f" , DumpShort : "D" } )
7676
7777 // --- Cache ---
7878 cacheEnabled , cacheMaxEntries , cacheStatsInterval := addCacheFlags (fs )
@@ -97,7 +97,7 @@ func cmdBridge(args []string) {
9797 fmt .Fprintf (os .Stderr , " -G, --guide URL/PATH guide source: XMLTV or JSON (optional)\n \n " )
9898 fmt .Fprintf (os .Stderr , "Channel defaults:\n " )
9999 fmt .Fprintf (os .Stderr , " -n, --name STRING channel name (single-stream mode only)\n " )
100- fmt .Fprintf (os .Stderr , " -D , --description TEXT channel description\n " )
100+ fmt .Fprintf (os .Stderr , " -U , --description TEXT channel description\n " )
101101 fmt .Fprintf (os .Stderr , " -T, --tags LIST comma-separated tags (max 5)\n " )
102102 fmt .Fprintf (os .Stderr , " -a, --language CODE ISO 639-1 language code (e.g. en, ja)\n " )
103103 fmt .Fprintf (os .Stderr , " -z, --timezone TZ IANA timezone name for metadata\n " )
@@ -113,8 +113,8 @@ func cmdBridge(args []string) {
113113 fmt .Fprintf (os .Stderr , " -P, --peers LIST tltv:// URIs to advertise in peer exchange\n " )
114114 fmt .Fprintf (os .Stderr , " -g, --gossip re-advertise validated gossip-discovered channels\n \n " )
115115 fmt .Fprintf (os .Stderr , "Config:\n " )
116- fmt .Fprintf (os .Stderr , " --config PATH config file (JSON)\n " )
117- fmt .Fprintf (os .Stderr , " --dump-config print resolved config as JSON and exit\n \n " )
116+ fmt .Fprintf (os .Stderr , " -f, --config PATH config file (JSON)\n " )
117+ fmt .Fprintf (os .Stderr , " -D, --dump-config print resolved config as JSON and exit\n \n " )
118118 fmt .Fprintf (os .Stderr , "TLS:\n " )
119119 fmt .Fprintf (os .Stderr , " --tls enable TLS (autocert via Let's Encrypt if no cert/key)\n " )
120120 fmt .Fprintf (os .Stderr , " --tls-cert FILE TLS certificate file (PEM)\n " )
@@ -159,6 +159,8 @@ func cmdBridge(args []string) {
159159 fmt .Fprintf (os .Stderr , "error: %v\n " , err )
160160 os .Exit (1 )
161161 }
162+ stopLogReopen := startLogReopenWatcher ()
163+ defer stopLogReopen ()
162164
163165 // Load config file (if specified). Config values fill in unset flags.
164166 var bridgeGuideEntries []guideEntry // from config inline guide
@@ -472,6 +474,9 @@ func cmdBridge(args []string) {
472474 return map [string ]interface {}{}
473475 }
474476 info := viewerBuildInfo (current .ChannelID , current .Name , current .metadata , current .guideDoc )
477+ if icon := viewerIconDataURI (iconData , iconCT ); icon != "" {
478+ info ["icon_data" ] = icon
479+ }
475480 info ["stream_src" ] = "/tltv/v1/channels/" + current .ChannelID + "/stream.m3u8"
476481 info ["xmltv_url" ] = "/tltv/v1/channels/" + current .ChannelID + "/guide.xml"
477482 if registry .hostname != "" {
@@ -495,6 +500,7 @@ func cmdBridge(args []string) {
495500 }
496501 if ch .IconFileName != "" {
497502 ref .IconPath = "/tltv/v1/channels/" + ch .ChannelID + "/" + ch .IconFileName
503+ ref .IconData = viewerIconDataURI (iconData , iconCT )
498504 }
499505 refs = append (refs , ref )
500506 }
0 commit comments