~ salmonella-environment-setup (master) 0077ca873daf7570b2328e37b3cc13c2b10f2ffd
commit 0077ca873daf7570b2328e37b3cc13c2b10f2ffd Author: Mario Domenech Goulart <mario.goulart@gmail.com> AuthorDate: Sun Oct 24 13:59:50 2010 -0200 Commit: Mario Domenech Goulart <mario.goulart@gmail.com> CommitDate: Sun Oct 24 14:00:58 2010 -0200 run-salmonella.scm: support for docs checking and egg tests diff --git a/run-salmonella.scm b/run-salmonella.scm index 499bc7a..2d7fd54 100755 --- a/run-salmonella.scm +++ b/run-salmonella.scm @@ -13,6 +13,10 @@ (define chicken-eggs-svn-uri (conc "https://anonymous@code.call-cc.org/svn/chicken-eggs/release/" chicken-major-release)) (define eggs-dir (make-pathname tmp-dir "chicken-eggs")) +(define wiki-svn-uri + (conc "https://anonymous@code.call-cc.org/svn/chicken-eggs/wiki/eggref/" chicken-major-release)) +(define wiki-dir + (make-pathname tmp-dir "wiki")) (define svn-credentials "--username anonymous --password ''") (define www-dir "/root/www/salmonella-report") (define debug-file (make-pathname tmp-dir "run-salmonella.log")) @@ -21,60 +25,65 @@ (when debug-file (with-output-to-file debug-file (lambda () - (print (string-intersperse (map ->string things) ""))) + (print (string-intersperse (map ->string things) ""))) append:))) (define (pad-number n zeroes) (define (pad num len) (let ((str (if (string? num) num (number->string num)))) (if (string-null? str) - "" - (if (>= (string-length str) len) - str - (string-pad str len #\0))))) + "" + (if (>= (string-length str) len) + str + (string-pad str len #\0))))) (let ((len (string-length (->string n)))) (if (= len zeroes) - (number->string n) - (pad n zeroes)))) + (number->string n) + (pad n zeroes)))) (define (! cmd #!optional dir) (let ((cmd (string-intersperse (map ->string cmd))) - (cwd (and dir (current-directory)))) + (cwd (and dir (current-directory)))) (when dir (change-directory dir) (debug "@" dir)) (debug cmd) (let* ((p (open-input-pipe (sprintf "~A 2>&1" cmd))) - (output (read-all p)) - (exit-status (arithmetic-shift (close-input-pipe p) -8))) + (output (read-all p)) + (exit-status (arithmetic-shift (close-input-pipe p) -8))) (when dir (change-directory cwd)) (unless (zero? exit-status) - (debug "Comand '" cmd "' exited abnormally with status " exit-status) - (debug output) - (exit exit-status)) + (debug "Command '" cmd "' exited abnormally with status " exit-status) + (debug output) + (exit exit-status)) (cons exit-status output)))) (define (run-salmonella) ;; Remove previous run data (for-each (lambda (file) - (! `(rm -rf ,file) tmp-dir)) - `(chicken-prefix - salmonella.log - salmonella.log.bz2 - salmonella.progress - salmonella-repo - run-salmonella.log - salmonella-report - ,chicken-core-dir - )) + (! `(rm -rf ,file) tmp-dir)) + `(chicken-prefix + salmonella.log + salmonella.log.bz2 + salmonella.progress + salmonella-repo + run-salmonella.log + salmonella-report + ,chicken-core-dir + )) ;; Get the most recent version of the chicken-core (if (file-exists? chicken-core-dir) (! `(git pull) chicken-core-dir) (! `(git clone ,chicken-core-git-uri) tmp-dir)) + ;; Get the most recent versions of wiki documentation + (if (file-exists? wiki-dir) + (! `(svn up ,svn-credentials) wiki-dir) + (! `(svn co ,svn-credentials ,wiki-svn-uri ,(pathname-strip-directory wiki-dir)) tmp-dir)) + ;; Get the most recent versions of all eggs (if (file-exists? eggs-dir) (! `(svn up ,svn-credentials) eggs-dir) @@ -90,42 +99,46 @@ (! `(,(make-pathname (pathname-directory chicken-bootstrap) "salmonella") "'(dont-ask #t)'" "'(verbose #f)'" + "'(run-tests #t)'" "'(skip-eggs (list \"macosx\" \"objc\" \"hfs+\" \"osxattr\"))'" - ,(string-append "'(env-vars (string-append (env-vars) \" QTDIR=/usr PATH=$PATH:" (make-pathname chicken-prefix "bin") "\"))'") + ,(string-append "'(env-vars (string-append (env-vars) \" LC_ALL=C LANG=C QTDIR=/usr PATH=$PATH:" (make-pathname chicken-prefix "bin") "\"))'") ,(string-append "'(base-uri \"" (make-pathname "http://tests.call-cc.org" (time->string (seconds->local-time (current-seconds)) "%Y/%m/%d")) "\")'") "'(css-file \"http://wiki.call-cc.org/chicken.css\")'" ,(string-append "'(chicken-install \"" (make-pathname chicken-prefix "bin/chicken-install") "\")'") - ,(string-append "'(chicken-eggs-dir \"" eggs-dir "\")'")))) + ,(string-append "'(csi \"" (make-pathname chicken-prefix "bin/csi") "\")'") + ,(string-append "'(chicken-eggs-dir \"" eggs-dir "\")'") + ,(string-append "'(wiki-dir \"" wiki-dir "\")'") + ))) (define (publish-results) (let* ((now (seconds->local-time)) - (day (pad-number (vector-ref now 3) 2)) - (month (pad-number (add1 (vector-ref now 4)) 2)) - (year (number->string (+ 1900 (vector-ref now 5)))) - (publish-dir (make-pathname (list www-dir year month) day)) - (feeds-dir (make-pathname www-dir "feeds")) - (today-path (make-pathname (list year month) day))) + (day (pad-number (vector-ref now 3) 2)) + (month (pad-number (add1 (vector-ref now 4)) 2)) + (year (number->string (+ 1900 (vector-ref now 5)))) + (publish-dir (make-pathname (list www-dir year month) day)) + (feeds-dir (make-pathname www-dir "feeds")) + (today-path (make-pathname (list year month) day))) (unless (file-exists? publish-dir) - (create-directory publish-dir 'parents-too)) + (create-directory publish-dir 'parents-too)) (unless (file-exists? feeds-dir) - (create-directory feeds-dir 'parents-too)) + (create-directory feeds-dir 'parents-too)) ;; Generate the atom feeds (! `(csi -s ,(make-pathname (pathname-directory chicken-bootstrap) "salmonella-log2atom") - salmonella.log ,feeds-dir ,today-path 1)) + salmonella.log ,feeds-dir ,today-path 1)) (! `(bzip2 -9 salmonella.log) tmp-dir) (for-each (lambda (file) - (! `(cp -R ,file ,publish-dir) tmp-dir)) - '("salmonella.log.bz2" - "salmonella-report" - "run-salmonella.log")) + (! `(cp -R ,file ,publish-dir) tmp-dir)) + '("salmonella.log.bz2" + "salmonella-report" + "run-salmonella.log")) ;; Making a link for the current results (! `(rm -f current) www-dir) @@ -134,7 +147,7 @@ ;; Create the tmp dir if it not exists (unless (file-exists? tmp-dir) - (create-directory tmp-dir 'parents-too)) + (create-directory tmp-dir 'parents-too)) ;; Change to the tmp dir (change-directory tmp-dir)Trap