Add go server
This commit is contained in:
parent
85c7c4fd9f
commit
6bddf284fe
4 changed files with 52 additions and 8 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -24,3 +24,4 @@ dist-ssr
|
||||||
*.sw?
|
*.sw?
|
||||||
|
|
||||||
.env
|
.env
|
||||||
|
server/server
|
||||||
|
|
|
||||||
19
Makefile
19
Makefile
|
|
@ -1,23 +1,26 @@
|
||||||
.PHONY: build deploy clean start default
|
.PHONY: deploy clean start default frontend
|
||||||
|
|
||||||
default: start
|
server/server: frontend
|
||||||
|
rm -rf server/dist
|
||||||
|
mv dist server/
|
||||||
|
CGO_ENABLED=0 go -C server build .
|
||||||
|
|
||||||
build:
|
frontend:
|
||||||
npm run build
|
npm run build
|
||||||
|
|
||||||
deploy: build
|
deploy: server/server
|
||||||
scp -r dist kiosk:
|
scp server/server kiosk:
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf dist
|
rm -rf dist server/dist server/server
|
||||||
|
|
||||||
start: deploy
|
start: deploy
|
||||||
# TODO: This doesn't kill weston nicely; I should handle that? Or background or something
|
# TODO: This doesn't kill weston nicely; I should handle that? Or background or something
|
||||||
ssh kiosk "pgrep -f 'python3 -m http.server' || python3 -m http.server --directory /home/chandler/dist 127.0.0.1:8000 &"
|
ssh kiosk "pgrep -f './server' || ./server"
|
||||||
#ssh kiosk "pkill -f 'weston --shell=kiosk-shell.so' || true"
|
#ssh kiosk "pkill -f 'weston --shell=kiosk-shell.so' || true"
|
||||||
ssh kiosk weston --shell=kiosk-shell.so -- firefox --kiosk localhost:8000 --remote-debugging-port=9222
|
ssh kiosk weston --shell=kiosk-shell.so -- firefox --kiosk localhost:8000 --remote-debugging-port=9222
|
||||||
|
|
||||||
debug: deploy
|
debug: deploy
|
||||||
ssh kiosk "pgrep -f 'python3 -m http.server' || python3 -m http.server --directory /home/chandler/dist 127.0.0.1:8000 &"
|
ssh kiosk "pgrep -f './server' || ./server"
|
||||||
#ssh kiosk "pkill -f 'weston --shell=kiosk-shell.so' || true"
|
#ssh kiosk "pkill -f 'weston --shell=kiosk-shell.so' || true"
|
||||||
ssh -L 6000:localhost:6000 kiosk weston --shell=kiosk-shell.so -- firefox --kiosk localhost:8000 --start-debugger-server 6000
|
ssh -L 6000:localhost:6000 kiosk weston --shell=kiosk-shell.so -- firefox --kiosk localhost:8000 --start-debugger-server 6000
|
||||||
|
|
|
||||||
3
server/go.mod
Normal file
3
server/go.mod
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
module git.chandlerswift.com/chandlerswift/digital-turntable/server
|
||||||
|
|
||||||
|
go 1.25.5
|
||||||
37
server/main.go
Normal file
37
server/main.go
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"embed"
|
||||||
|
"fmt"
|
||||||
|
"log"
|
||||||
|
"net/http"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
//go:embed dist
|
||||||
|
var webUI embed.FS
|
||||||
|
|
||||||
|
func setReader(state string) error {
|
||||||
|
// echo 'on' > '/sys/bus/usb/devices/1-1/power/control' # or 'auto'
|
||||||
|
switch state {
|
||||||
|
case "auto", "on":
|
||||||
|
return os.WriteFile("/sys/bus/usb/devices/1-1/power/control", []byte(state), 0)
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("unknown state %q", state)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
setReader("on")
|
||||||
|
http.Handle("/", http.FileServerFS(webUI))
|
||||||
|
|
||||||
|
http.HandleFunc("POST /api/reader/{state}", func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
if err := setReader(r.PathValue("state")); err != nil {
|
||||||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
w.Write([]byte("ok"))
|
||||||
|
})
|
||||||
|
|
||||||
|
log.Fatal(http.ListenAndServe("127.0.0.1:8000", nil))
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue