Index: Makefile ================================================================== --- Makefile +++ Makefile @@ -215,12 +215,20 @@ (export BASEPATH=/tmp/$(USER)/basepath ; export PATH="$(PWD)/datashare-testing:$(PATH)" ; xterm &) datashare-testing/spublish : spublish.scm $(OFILES) csc spublish.scm $(OFILES) -o datashare-testing/spublish -datashare-testing/sretrieve : sretrieve.scm $(OFILES) - csc sretrieve.scm $(OFILES) -o datashare-testing/sretrieve +datashare-testing/sretrieve : sretrieve.scm common.o megatest-version.o margs.o configf.o + csc sretrieve.scm common.o megatest-version.o margs.o configf.o -o datashare-testing/sretrieve + +sretrieve/sretrieve : datashare-testing/sretrieve + csc -deploy sretrieve.scm megatest-version.o margs.o configf.o + chicken-install -deploy -prefix sretrieve defstruct srfi-18 format sql-de-lite \ + srfi-1 posix regex regex-case srfi-69 + +# base64 dot-locking \ +# csv-xml z3 # "(define (toplevel-command . a) #f)" readline-fix.scm : if egrep 'version.*3.0' $(shell dirname $(shell dirname $(shell which csi)))/lib/chicken/7/readline.setup-info;then \ echo "(use-legacy-bindings)" > readline-fix.scm; \ Index: common.scm ================================================================== --- common.scm +++ common.scm @@ -421,10 +421,18 @@ ;;====================================================================== ;; T A R G E T S , S T A T E , S T A T U S , ;; R U N N A M E A N D T E S T P A T T ;;====================================================================== + +;; Lookup a value in runconfigs based on -reqtarg or -target +(define (runconfigs-get config var) + (let ((targ (common:args-get-target))) ;; (or (args:get-arg "-reqtarg")(args:get-arg "-target")(getenv "MT_TARGET")))) + (if targ + (or (configf:lookup config targ var) + (configf:lookup config "default" var)) + (configf:lookup config "default" var)))) (define (common:args-get-state) (or (args:get-arg "-state")(args:get-arg ":state"))) (define (common:args-get-status) Index: configf.scm ================================================================== --- configf.scm +++ configf.scm @@ -11,14 +11,13 @@ ;;====================================================================== ;; Config file handling ;;====================================================================== -(use regex regex-case directory-utils) +(use regex regex-case) ;; directory-utils) (declare (unit configf)) -(declare (uses common)) -(declare (uses process)) +;; (declare (uses process)) (include "common_records.scm") ;; return list (path fullpath configname) (define (find-config configname #!key (toppath #f)) @@ -134,18 +133,10 @@ (with-output-to-port (current-error-port) (lambda () (print "ERROR: " cmd " returned bad exit code " status))) "")))) -;; Lookup a value in runconfigs based on -reqtarg or -target -(define (runconfigs-get config var) - (let ((targ (common:args-get-target))) ;; (or (args:get-arg "-reqtarg")(args:get-arg "-target")(getenv "MT_TARGET")))) - (if targ - (or (configf:lookup config targ var) - (configf:lookup config "default" var)) - (configf:lookup config "default" var)))) - ;; this was inline but I'm pretty sure that is a hold over from when it was *very* simple ... ;; (define (configf:read-line p ht allow-processing settings) (let loop ((inl (read-line p))) (let ((cont-line (and (string? inl) Index: datashare-testing/.sretrieve.config ================================================================== --- datashare-testing/.sretrieve.config +++ datashare-testing/.sretrieve.config @@ -1,8 +1,8 @@ [settings] base-dir /tmp/delme_data -allowed-users matt mrwellan pjhatwal +allowed-users matt allowed-chars [0-9a-zA-Z\-\.]+ [database] location #{scheme (create-directory "/tmp/#{getenv USER}" #t)} Index: launch.scm ================================================================== --- launch.scm +++ launch.scm @@ -1022,11 +1022,11 @@ ) itemdat))) ;; Launchwait defaults to true, must override it to turn off wait (launchwait (if (equal? (configf:lookup *configdat* "setup" "launchwait") "no") #f #t)) (launch-results (apply (if launchwait - cmd-run-with-stderr->list + process:cmd-run-with-stderr->list process-run) (if useshell (let ((cmdstr (string-intersperse fullcmd " "))) (if launchwait cmdstr Index: margs.scm ================================================================== --- margs.scm +++ margs.scm @@ -6,11 +6,11 @@ ;; This program is distributed WITHOUT ANY WARRANTY; without even the ;; implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ;; PURPOSE. (declare (unit margs)) -(declare (uses common)) +;; (declare (uses common)) (define args:arg-hash (make-hash-table)) (define (args:get-arg arg . default) (if (null? default) Index: process.scm ================================================================== --- process.scm +++ process.scm @@ -15,17 +15,17 @@ (use regex) (declare (unit process)) (declare (uses common)) -(define (conservative-read port) +(define (process:conservative-read port) (let loop ((res "")) (if (not (eof-object? (peek-char port))) (loop (conc res (read-char port))) res))) - -(define (cmd-run-with-stderr->list cmd . params) + +(define (process:cmd-run-with-stderr->list cmd . params) ;; (print "Called with cmd=" cmd ", proc=" proc ", params=" params) ;; (handle-exceptions ;; exn ;; (begin ;; (print "ERROR: Failed to run command: " cmd " " (string-intersperse params " ")) @@ -34,11 +34,11 @@ (let-values (((fh fho pid fhe) (if (null? params) (process* cmd) (process* cmd params)))) (let loop ((curr (read-line fh)) (result '())) - (let ((errstr (conservative-read fhe))) + (let ((errstr (process:conservative-read fhe))) (if (not (string=? errstr "")) (set! result (append result (list errstr))))) (if (not (eof-object? curr)) (loop (read-line fh) (append result (list curr))) Index: spublish.scm ================================================================== --- spublish.scm +++ spublish.scm @@ -20,12 +20,12 @@ ;; (use json) ;; (use csv) (use srfi-18) (use format) -(require-library ini-file) -(import (prefix ini-file ini:)) +;; (require-library ini-file) +;; (import (prefix ini-file ini:)) (use sql-de-lite srfi-1 posix regex regex-case srfi-69) ;; (import (prefix sqlite3 sqlite3:)) ;; (declare (uses configf)) @@ -350,12 +350,12 @@ ;; MAIN ;;====================================================================== (define (spublish:load-config exe-dir exe-name) (let* ((fname (conc exe-dir "/." exe-name ".config"))) - (ini:property-separator-patt " * *") - (ini:property-separator #\space) + ;; (ini:property-separator-patt " * *") + ;; (ini:property-separator #\space) (if (file-exists? fname) ;; (ini:read-ini fname) (read-config fname #f #t) (make-hash-table)))) Index: sretrieve.scm ================================================================== --- sretrieve.scm +++ sretrieve.scm @@ -17,16 +17,16 @@ ;; (use srfi-69) ;; (use regex-case) ;; (use posix) ;; (use json) ;; (use csv) -(use directory-utils) +;; (use directory-utils) (use srfi-18) (use format) -(require-library ini-file) -(import (prefix ini-file ini:)) +;; (require-library ini-file) +;; (import (prefix ini-file ini:)) (use sql-de-lite srfi-1 posix regex regex-case srfi-69) ;; (import (prefix sqlite3 sqlite3:)) ;; (declare (uses configf)) @@ -44,10 +44,13 @@ (include "megatest-fossil-hash.scm") ;; ;; GLOBALS ;; +(define *verbosity* 1) +(define *logging* #f) + (define *sretrieve:current-tab-number* 0) (define *args-hash* (make-hash-table)) (define sretrieve:help (conc "Usage: sretrieve [action [params ...]] ls : list contents of target area @@ -323,12 +326,12 @@ ;; MAIN ;;====================================================================== (define (sretrieve:load-config exe-dir exe-name) (let* ((fname (conc exe-dir "/." exe-name ".config"))) - (ini:property-separator-patt " * *") - (ini:property-separator #\space) + ;; (ini:property-separator-patt " * *") + ;; (ini:property-separator #\space) (if (file-exists? fname) ;; (ini:read-ini fname) (read-config fname #f #t) (make-hash-table)))) @@ -351,12 +354,12 @@ (debug:print 0 "ERROR: failed to run script " conversion-script " with params " upstream-file " " package-config) (let ((pid (process-run conversion-script (list upstream-file package-config)))) (process-wait pid))) (debug:print 0 "Skipping update of " package-config " from " upstream-file)) (debug:print 0 "Skipping update of " package-config " as " upstream-file " not found")) - (ini:property-separator-patt " * *") - (ini:property-separator #\space) + ;; (ini:property-separator-patt " * *") + ;; (ini:property-separator #\space) (let ((res (if (file-exists? package-config) (begin (debug:print 0 "Reading package config " package-config) (read-config package-config #f #t)) (make-hash-table))))