digital-turntable/server/main.go
2026-02-12 00:09:06 -06:00

37 lines
779 B
Go

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))
}