Compare commits

..

No commits in common. "8c8e06b0157c97ee1771f848ed363c6a0ed398be" and "8c3ee80b21278eaa6fb29f73b79c16d443923dfa" have entirely different histories.

2 changed files with 14 additions and 26 deletions

View File

@ -2,19 +2,16 @@ body {
margin: 0; margin: 0;
padding: 0; padding: 0;
font-family: sans-serif; font-family: sans-serif;
font-size: clamp(0.5rem, 2vw, 1rem);
} }
.xP { .xP {
height: 100vh;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
overflow: hidden; overflow: hidden;
height: 100vh;
/* https://caniuse.com/viewport-unit-variants */
height: 100dvh;
} }
.title, .status { .title, .status {
padding: .05em .3em; padding: .05rem .3rem;
background: #eee; background: #eee;
position: relative; position: relative;
@ -55,11 +52,10 @@ body {
.list { .list {
overflow-y: auto; overflow-y: auto;
border-right: 1px solid #ccc; border-right: 1px solid #ccc;
min-width: 10em; min-width: 10rem;
flex-shrink: 0;
} }
.item { .item {
padding: .05em .3em; padding: .05rem .3rem;
cursor: default; cursor: default;
} }
.item.highlighted { .item.highlighted {
@ -93,7 +89,7 @@ body {
overflow-y: auto; overflow-y: auto;
} }
.log { .log {
padding: .1em .3em; padding: .1rem .3rem;
font-family: monospace; font-family: monospace;
white-space: pre-wrap; white-space: pre-wrap;
overflow-y: auto; overflow-y: auto;
@ -103,7 +99,7 @@ body {
opacity: 50%; opacity: 50%;
} }
.date { .date {
padding: .3em; padding: .3rem;
grid-column: span 2; grid-column: span 2;
font-weight: bold; font-weight: bold;
} }
@ -113,16 +109,16 @@ body {
background: #ff5f00; background: #ff5f00;
} }
.time { .time {
padding: .1em .3em; padding: .1rem .3rem;
background: #f8f8f8; background: #f8f8f8;
color: #bbb; color: #bbb;
border-right: 1px solid #ccc; border-right: 1px solid #ccc;
} }
.mark { .mark {
padding-right: .3em; padding-right: .3rem;
text-align: center; text-align: center;
display: inline-block; display: inline-block;
min-width: 2em; min-width: 2rem;
} }
.mark.error { .mark.error {
color: red; color: red;
@ -137,7 +133,7 @@ body {
color: darkred; color: darkred;
} }
.content { .content {
padding: .1em .3em; padding: .1rem .3rem;
white-space: pre-wrap; white-space: pre-wrap;
} }
.content .b { .content .b {
@ -158,7 +154,7 @@ body {
textarea { textarea {
font: inherit; font: inherit;
padding: .05em .3em; padding: .05rem .3rem;
margin: 0; margin: 0;
border: 2px inset #eee; border: 2px inset #eee;
flex-shrink: 0; flex-shrink: 0;

View File

@ -22,7 +22,6 @@ import (
var ( var (
addressBind string addressBind string
addressConnect string addressConnect string
addressWS string
) )
func clientToRelay( func clientToRelay(
@ -145,7 +144,6 @@ var page = template.Must(template.New("/").Parse(`<!DOCTYPE html>
<head> <head>
<title>xP</title> <title>xP</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="xP.css" /> <link rel="stylesheet" href="xP.css" />
</head> </head>
<body> <body>
@ -165,24 +163,18 @@ func handleDefault(w http.ResponseWriter, r *http.Request) {
return return
} }
wsURI := addressWS wsURI := fmt.Sprintf("ws://%s/ws", r.Host)
if wsURI == "" {
wsURI = fmt.Sprintf("ws://%s/ws", r.Host)
}
if err := page.Execute(w, wsURI); err != nil { if err := page.Execute(w, wsURI); err != nil {
log.Println("Template execution failed: " + err.Error()) log.Println("Template execution failed: " + err.Error())
} }
} }
func main() { func main() {
if len(os.Args) < 3 || len(os.Args) > 4 { if len(os.Args) != 3 {
log.Fatalf("usage: %s BIND CONNECT [WSURI]\n", os.Args[0]) log.Fatalf("usage: %s BIND CONNECT\n", os.Args[0])
} }
addressBind, addressConnect = os.Args[1], os.Args[2] addressBind, addressConnect = os.Args[1], os.Args[2]
if len(os.Args) > 3 {
addressWS = os.Args[3]
}
http.Handle("/ws", websocket.Handler(handleWebSocket)) http.Handle("/ws", websocket.Handler(handleWebSocket))
http.Handle("/", http.HandlerFunc(handleDefault)) http.Handle("/", http.HandlerFunc(handleDefault))