cuirass: Add "--port" command line option.

* bin/cuirass.in (%options): Add "--port" and "-p" command line options.
(show-help): Adapt.
(main): Set default to 8080.  Call 'run-cuirass-server' with this.
* src/cuirass/http.scm (run-cuirass-server): Display the port number.
* doc/cuirass.texi (Invocation): Document new option.
pull/3/head
Mathieu Lirzin 2016-12-24 02:15:17 +01:00
parent b59b8e5567
commit 8a782b3e84
No known key found for this signature in database
GPG Key ID: 0ADEE10094604D37
3 changed files with 10 additions and 1 deletions

View File

@ -37,6 +37,7 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@"
-S --specifications=SPECFILE
Add specifications from SPECFILE to database.
-D --database=DB Use DB to store build results.
-p --port=NUM Port of the HTTP server.
-I, --interval=N Wait N seconds between each poll
--use-substitutes Allow usage of pre-built substitutes
-V, --version Display version
@ -49,6 +50,7 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@"
(cache-directory (value #t))
(specifications (single-char #\S) (value #t))
(database (single-char #\D) (value #t))
(port (single-char #\p) (value #t))
(interval (single-char #\I) (value #t))
(use-substitutes (value #f))
(version (single-char #\V) (value #f))
@ -76,6 +78,7 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@"
(exit 0))
(else
(let ((one-shot? (option-ref opts 'one-shot #f))
(port (string->number (option-ref opts 'port "8080")))
(interval (string->number (option-ref opts 'interval "10")))
(specfile (option-ref opts 'specifications #f)))
(with-database db
@ -94,4 +97,4 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@"
(while #t
(process-specs db (db-get-specifications db))
(sleep interval))))
(run-cuirass-server db))))))))))
(run-cuirass-server db #:port port))))))))))

View File

@ -169,6 +169,11 @@ build results. Since @code{cuirass} uses SQLite as a database engine,
@var{database} must be a file name. If the file doesn't exist, it will
be created.
@item --port=@var{num}
@itemx -p @var{num}
Make the HTTP interface listen on port @var{num}. Use port 8080 by
default.
@item --interval=@var{n}
@itemx -I @var{n}
Wait @var{n} seconds between each poll.

View File

@ -71,6 +71,7 @@
(uri->string (request-uri request)))))))
(define* (run-cuirass-server db #:key (port 8080))
(format (current-error-port) "listening on port ~A~%" port)
(run-server url-handler
'http ;server implementation
`(#:port ,port) ;implementation parameters