implement devmode with alternate directory/ports so main/dev can be run simultaneously

This commit is contained in:
sawka 2022-12-28 17:47:12 -08:00
parent e1e1a52e06
commit 9ab5d1e529
4 changed files with 25 additions and 9 deletions

View File

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

View File

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

View File

@ -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

View File

@ -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
```