start command: fix default value for port (#244)
* start command: fix default value for port Defaulting the port to "8080" at the `command-line' level breaks customization via `pollen.rkt'. * test-project-port: connect to server to verify that it's uppull/245/head
parent
62b19a07d8
commit
6cd57203c1
@ -0,0 +1,3 @@
|
|||||||
|
#lang pollen
|
||||||
|
|
||||||
|
Hello!
|
@ -0,0 +1,6 @@
|
|||||||
|
#lang racket/base
|
||||||
|
|
||||||
|
(module setup racket/base
|
||||||
|
(provide (all-defined-out))
|
||||||
|
(define project-server-port
|
||||||
|
9876))
|
@ -0,0 +1,51 @@
|
|||||||
|
#lang racket/base
|
||||||
|
|
||||||
|
(require racket/port
|
||||||
|
racket/runtime-path
|
||||||
|
racket/tcp
|
||||||
|
rackunit)
|
||||||
|
|
||||||
|
(define-runtime-path project-port-dir "data/project-port")
|
||||||
|
|
||||||
|
(define the-port
|
||||||
|
(dynamic-require
|
||||||
|
`(submod ,(build-path project-port-dir "pollen.rkt") setup)
|
||||||
|
'project-server-port))
|
||||||
|
|
||||||
|
(define-values (in out)
|
||||||
|
(make-pipe))
|
||||||
|
|
||||||
|
(define thd
|
||||||
|
(parameterize ([current-output-port out]
|
||||||
|
[current-error-port out]
|
||||||
|
[current-directory project-port-dir]
|
||||||
|
[current-command-line-arguments (vector "start")]
|
||||||
|
[exit-handler (lambda (code)
|
||||||
|
(fail (format "abnormal exit from raco command~n code: ~a" code))
|
||||||
|
(kill-thread thd))])
|
||||||
|
(thread
|
||||||
|
(lambda ()
|
||||||
|
(dynamic-require '(submod pollen/private/command raco) #f)))))
|
||||||
|
|
||||||
|
(dynamic-wind
|
||||||
|
void
|
||||||
|
(lambda ()
|
||||||
|
(sync
|
||||||
|
(handle-evt
|
||||||
|
(regexp-match-evt #rx"ready to rock" in)
|
||||||
|
void)
|
||||||
|
(handle-evt
|
||||||
|
(alarm-evt (+ (current-inexact-milliseconds) 5000))
|
||||||
|
(lambda (_)
|
||||||
|
(fail "timed out while waiting for server to start"))))
|
||||||
|
|
||||||
|
(with-handlers ([exn:fail?
|
||||||
|
(lambda (e)
|
||||||
|
(fail (format "failed to connect to server: ~a" (exn-message e))))])
|
||||||
|
(define-values (cin cout)
|
||||||
|
(tcp-connect "127.0.0.1" the-port))
|
||||||
|
(close-output-port cout)
|
||||||
|
(close-input-port cin)))
|
||||||
|
(lambda ()
|
||||||
|
(break-thread thd)
|
||||||
|
(thread-wait thd)))
|
Loading…
Reference in New Issue