diff --git a/cmd/main-server.go b/cmd/main-server.go index 38b622c2..4e8dfc7e 100644 --- a/cmd/main-server.go +++ b/cmd/main-server.go @@ -348,15 +348,19 @@ func AuthKeyWrap(fn WebFnType) WebFnType { func runWebSocketServer() { gr := mux.NewRouter() gr.HandleFunc("/ws", HandleWs) + serverAddr := WebSocketServerAddr + if scbase.IsDevMode() { + serverAddr = WebSocketServerDevAddr + } server := &http.Server{ - Addr: WebSocketServerAddr, + Addr: serverAddr, ReadTimeout: HttpReadTimeout, WriteTimeout: HttpWriteTimeout, MaxHeaderBytes: HttpMaxHeaderBytes, Handler: gr, } server.SetKeepAlivesEnabled(false) - log.Printf("Running websocket server on %s\n", WebSocketServerAddr) + log.Printf("Running websocket server on %s\n", serverAddr) err := server.ListenAndServe() if err != nil { log.Printf("[error] trying to run websocket server: %v\n", err) @@ -453,15 +457,19 @@ func main() { gr.HandleFunc("/api/run-command", AuthKeyWrap(HandleRunCommand)).Methods("POST") gr.HandleFunc("/api/get-client-data", AuthKeyWrap(HandleGetClientData)) gr.HandleFunc("/api/set-winsize", AuthKeyWrap(HandleSetWinSize)) + serverAddr := MainServerAddr + if scbase.IsDevMode() { + serverAddr = MainServerDevAddr + } server := &http.Server{ - Addr: MainServerAddr, + Addr: serverAddr, ReadTimeout: HttpReadTimeout, WriteTimeout: HttpWriteTimeout, MaxHeaderBytes: HttpMaxHeaderBytes, Handler: http.TimeoutHandler(gr, HttpTimeoutDuration, "Timeout"), } server.SetKeepAlivesEnabled(false) - log.Printf("Running main server on %s\n", MainServerAddr) + log.Printf("Running main server on %s\n", serverAddr) err = server.ListenAndServe() if err != nil { log.Printf("ERROR: %v\n", err) diff --git a/pkg/scbase/scbase.go b/pkg/scbase/scbase.go index b7028907..edc2827c 100644 --- a/pkg/scbase/scbase.go +++ b/pkg/scbase/scbase.go @@ -31,6 +31,11 @@ const PromptAuthKeyFileName = "prompt.authkey" var SessionDirCache = make(map[string]string) var BaseLock = &sync.Mutex{} +func IsDevMode() bool { + pdev := os.Getenv(PromptDevVarName) + return pdev != "" +} + // must match js func GetPromptHomeDir() string { scHome := os.Getenv(PromptHomeVarName) diff --git a/pkg/sstore/sstore.go b/pkg/sstore/sstore.go index eadecb22..4277c6cf 100644 --- a/pkg/sstore/sstore.go +++ b/pkg/sstore/sstore.go @@ -94,6 +94,9 @@ func GetDB(ctx context.Context) (*sqlx.DB, error) { globalDB, globalDBErr = sqlx.Open("sqlite3", fmt.Sprintf("file:%s?cache=shared&mode=rwc&_journal_mode=WAL&_busy_timeout=5000", dbName)) if globalDBErr != nil { globalDBErr = fmt.Errorf("opening db[%s]: %w", dbName, globalDBErr) + log.Printf("[db] error: %v\n", globalDBErr) + } else { + log.Printf("[db] successfully opened db %s\n", dbName) } } return globalDB, globalDBErr diff --git a/scripthaus.md b/scripthaus.md index 563af253..88dc22bd 100644 --- a/scripthaus.md +++ b/scripthaus.md @@ -1,16 +1,16 @@ # SH2 Server Commands ```bash -# @scripthaus command dump-schema -sqlite3 /Users/mike/prompt/prompt.db .schema > db/schema.sql +# @scripthaus command dump-schema-dev +sqlite3 /Users/mike/prompt-dev/prompt.db .schema > db/schema.sql ``` ```bash -# @scripthaus command opendb -sqlite3 /Users/mike/prompt/prompt.db +# @scripthaus command opendb-dev +sqlite3 /Users/mike/prompt-dev/prompt.db ``` ```bash # @scripthaus command build -go build -o ~/prompt/local-server cmd/main-server.go +go build -o ~/prompt-dev/local-server cmd/main-server.go ```