Index: session.scm ================================================================== --- session.scm +++ session.scm @@ -176,30 +176,38 @@ (if domain (sdat-set-domain! self domain)) (if twikidir (sdat-set-twikidir! self twikidir)) (if debugmode (sdat-set-debugmode! self debugmode)) (sdat-set-page-dir-style! self page-dir) ;; (print "configdat: ")(pp configdat) - ;;(session:log self "sroot: " sroot " logfile: " logfile " dbtype: " dbtype - ;; " dbinit: " dbinit " domain: " domain " page-dir-style: " page-dir) + (if debugmode + (session:log self "sroot: " sroot " logfile: " logfile " dbtype: " dbtype + " dbinit: " dbinit " domain: " domain " page-dir-style: " page-dir)) ) ) ;; (let ((dbtype (sdat-get-dbtype self))) ;; (print "dbtype: " dbtype) ;; (sdat-set-dbtype! self (eval dbtype)))) (define (session:setup self) - (let ((dbtype (sdat-get-dbtype self)) - (dbinit (eval (sdat-get-dbinit self))) - (dbexists #f)) + (let ((dbtype (sdat-get-dbtype self)) + (debugmode (sdat-get-debugmode self)) + (dbinit (eval (sdat-get-dbinit self))) + (dbexists #f)) (let ((dbfname (alist-ref 'dbname dbinit))) + (if debugmode (session:log self "session:setup dbfname=" dbfname ", dbtype=" dbtype ", dbinit=" dbinit)) (if (eq? dbtype 'sqlite3) - (if (file-exists? dbfname) - (begin - ;; (session:log self "setting dbexists to #t") - (set! dbexists #t)))) - ;; (session:log self "dbtype: " dbtype " dbfname: " dbfname " dbexists: " dbexists)) - ) + (let ((dbpath (pathname-directory dbfname))) ;; do a couple sanity checks here to make setting up easier + (if debugmode (session:log self "INFO: setting up for sqlite3 db access to " dbfname)) + (if (not (file-write-access? dbpath)) + (session:log self "WARNING: Cannot write to " dbpath) + (if debugmode (session:log self "INFO: " dbpath " is writeable"))) + (if (file-exists? dbfname) + (begin + ;; (session:log self "setting dbexists to #t") + (set! dbexists #t)))) + (if debugmode (session:log self "INFO: setting up for pg db access to account info " dbinit))) + (if debugmode (session:log self "dbtype: " dbtype " dbfname: " dbfname " dbexists: " dbexists))) (sdat-set-conn! self (dbi:open dbtype dbinit)) (if (and (not dbexists)(eq? dbtype 'sqlite3)) (begin (print "WARNING: Setting up session db with sqlite3") (session:setup-db self)))