Index: db.scm ================================================================== --- db.scm +++ db.scm @@ -82,11 +82,16 @@ CONSTRAINT metadat_constraint UNIQUE (id,var));") (db:set-var db "MEGATEST_VERSION" megatest-version) (sqlite3:execute db "CREATE TABLE access_log (id INTEGER PRIMARY KEY, user TEXT, accessed TIMESTAMP, args TEXT);"))) db)) -(define (patch-db db)heh +;;====================================================================== +;; TODO: +;; put deltas into an assoc list with version numbers +;; apply all from last to current +;;====================================================================== +(define (patch-db db) (handle-exceptions exn (begin (print "Exception: " exn) (print "ERROR: Possible out of date schema, attempting to add table metadata...") @@ -94,17 +99,18 @@ CONSTRAINT metadat_constraint UNIQUE (id,var));") (sqlite3:execute db "ALTER TABLE tests ADD COLUMN tags TEXT DEFAULT '';") (db:set-var db "MEGATEST_VERSION" 1.17) ) (let ((mver (db:get-var db "MEGATEST_VERSION"))) - (cond - ((not mver) - (print "Adding megatest-version to metadata") - (sqlite3:execute db (db:set-var db "MEGATEST_VERSION" megatest-version))) - ((< mver 1.18) - (print "Adding tags column to tests table") - )) + (if(not mver) + (begin + (print "Adding megatest-version to metadata") + (sqlite3:execute db (db:set-var db "MEGATEST_VERSION" megatest-version)))) + (if (< mver 1.18) + (begin + (print "Adding tags column to tests table") + (sqlite3:execute db "ALTER TABLE tests ADD COLUMN tags TEXT DEFAULT '';"))) (db:set-var db "MEGATEST_VERSION" megatest-version) ))) ;;====================================================================== ;; meta get and set vars Index: launch.scm ================================================================== --- launch.scm +++ launch.scm @@ -38,11 +38,15 @@ (if (> freespc bestsize) (begin (set! best dirpath) (set! bestsize freespc))))) (map car disks))) - best)) + (if best + best + (begin + (debug:print 0 "ERROR: No valid disks found in megatest.config. Please add some to your [disks] section") + (exit 1))))) (define (create-work-area db run-id test-path disk-path testname itemdat) (let* ((run-info (db:get-run-info db run-id)) (item-path (let ((ip (item-list->path itemdat))) (if (equal? ip "") "" (conc "/" ip))))