diff options
author | Ludovic Courtès <ludo@gnu.org> | 2018-01-24 23:40:07 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2018-01-24 23:41:24 +0100 |
commit | 8675d6309b0576cdca7d5b607a358fd37982bfe7 (patch) | |
tree | 29e55f3231937ee2906a0426a494767f1a3e5466 /src/cuirass/database.scm | |
parent | 1d7f4f07d995e13093b8bf72c609c901f38b94c6 (diff) | |
download | cuirass-8675d6309b0576cdca7d5b607a358fd37982bfe7.tar cuirass-8675d6309b0576cdca7d5b607a358fd37982bfe7.tar.gz |
database: 'db-update-build-status!' takes a #:log-file parameter.
* src/cuirass/database.scm (sqlite-exec): Use (ice-9 format).
(db-update-build-status!): Add #:log-file parameter and honor it.
* tests/database.scm ("database")["db-update-build-status!"]: Test it.
Diffstat (limited to 'src/cuirass/database.scm')
-rw-r--r-- | src/cuirass/database.scm | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/cuirass/database.scm b/src/cuirass/database.scm index 4b6b062..539aa31 100644 --- a/src/cuirass/database.scm +++ b/src/cuirass/database.scm @@ -22,6 +22,7 @@ #:use-module (cuirass config) #:use-module (cuirass utils) #:use-module (ice-9 match) + #:use-module (ice-9 format) #:use-module (ice-9 rdelim) #:use-module (srfi srfi-1) #:use-module (srfi srfi-19) @@ -54,9 +55,8 @@ (define (sqlite-exec db msg . args) "Wrap 'sqlite-prepare', 'sqlite-step', and 'sqlite-finalize'. Send message -MSG to database DB. MSG can contain '~A' and '~S' escape characters which -will be replaced by ARGS." - (let* ((sql (apply simple-format #f msg args)) +MSG to database DB. MSG and ARGS are passed to 'format'." + (let* ((sql (apply format #f msg args)) (stmt (sqlite-prepare db sql)) (res (let loop ((res '())) (let ((row (sqlite-step stmt))) @@ -236,9 +236,10 @@ INSERT INTO Outputs (build, name, path) VALUES ('~A', '~A', '~A');" (assq-ref build #:outputs)) build-id)) -(define (db-update-build-status! db drv status) +(define* (db-update-build-status! db drv status #:key log-file) "Update DB so that DRV's status is STATUS. This also updates the -'starttime' or 'stoptime' fields." +'starttime' or 'stoptime' fields. If LOG-FILE is true, record it as the build +log file for DRV." (define now (time-second (current-time time-utc))) @@ -246,9 +247,9 @@ INSERT INTO Outputs (build, name, path) VALUES ('~A', '~A', '~A');" (sqlite-exec db "UPDATE Builds SET starttime='~A', status='~A' \ WHERE derivation='~A';" now status drv) - (sqlite-exec db "UPDATE Builds SET stoptime='~A', status='~A' \ -WHERE derivation='~A';" - now status drv))) + (sqlite-exec db "UPDATE Builds SET stoptime='~A', \ +status='~A'~@[, log='~A'~] WHERE derivation='~A';" + now status log-file drv))) (define (db-get-outputs db build-id) "Retrieve the OUTPUTS of the build identified by BUILD-ID in DB database." |