base: Add 'cancel-old-builds'.

* src/cuirass/base.scm (cancel-old-builds): New procedure.
This commit is contained in:
Ludovic Courtès 2018-03-28 12:14:49 +02:00
parent 1872dd9525
commit e8543d7aa9
1 changed files with 9 additions and 0 deletions

View File

@ -50,6 +50,7 @@
compile
evaluate
clear-build-queue
cancel-old-builds
restart-builds
build-packages
prepare-git
@ -492,6 +493,14 @@ procedure is meant to be called at startup."
(log-message "marking stale builds as \"scheduled\"...")
(sqlite-exec db "UPDATE Builds SET status = -2 WHERE status = -1;"))
(define (cancel-old-builds db age)
"Cancel builds older than AGE seconds."
(log-message "canceling builds older than ~a seconds..." age)
(sqlite-exec db
"UPDATE Builds SET status = 4 WHERE status = -2 AND timestamp < "
(- (time-second (current-time time-utc)) age)
";"))
(define (restart-builds db builds)
"Restart builds whose status in DB is \"pending\" (scheduled or started)."
(with-store store