···
···
"github.com/charmbracelet/lipgloss"
"battleship-arena/internal/storage"
var titleStyle = lipgloss.NewStyle().
···
submissions []storage.Submission
leaderboard []storage.LeaderboardEntry
matches []storage.MatchResult
func InitialModel(username string, width, height int) model {
submissions: []storage.Submission{},
leaderboard: []storage.LeaderboardEntry{},
···
infoStyle := lipgloss.NewStyle().Foreground(lipgloss.Color("86"))
-
b.WriteString(infoStyle.Render(fmt.Sprintf("Upload via: scp -P %s memory_functions_yourname.cpp %s@%s:~/", sshPort, m.username, host)))
···
···
"github.com/charmbracelet/lipgloss"
"battleship-arena/internal/storage"
var titleStyle = lipgloss.NewStyle().
···
submissions []storage.Submission
leaderboard []storage.LeaderboardEntry
matches []storage.MatchResult
func InitialModel(username string, width, height int) model {
+
externalURL := os.Getenv("BATTLESHIP_EXTERNAL_URL")
+
externalURL = "localhost"
+
// Strip http:// or https:// prefix to get just the hostname
+
externalURL = strings.TrimPrefix(externalURL, "http://")
+
externalURL = strings.TrimPrefix(externalURL, "https://")
+
// Strip port if present
+
if idx := strings.Index(externalURL, ":"); idx != -1 {
+
externalURL = externalURL[:idx]
+
sshPort := os.Getenv("BATTLESHIP_SSH_PORT")
submissions: []storage.Submission{},
leaderboard: []storage.LeaderboardEntry{},
+
externalURL: externalURL,
···
infoStyle := lipgloss.NewStyle().Foreground(lipgloss.Color("86"))
+
b.WriteString(infoStyle.Render(fmt.Sprintf("Upload via: scp -P %s memory_functions_yourname.cpp %s@%s:~/", m.sshPort, m.username, m.externalURL)))