From: fredrik Date: Mon, 29 May 2006 20:41:04 +0000 (+0000) Subject: Allow passing arbitrary args. X-Git-Tag: 0.1~18 X-Git-Url: http://git.dolda2000.com/gitweb/?p=doldaconnect.git;a=commitdiff_plain;h=e838f46bcb0a8631b13e376b020d520ba20f5c94 Allow passing arbitrary args. git-svn-id: svn+ssh://svn.dolda2000.com/srv/svn/repos/src/doldaconnect@628 959494ce-11ee-0310-bf91-de5d638817bd --- diff --git a/lib/guile/autodl b/lib/guile/autodl index 5d79ce8..6b72550 100755 --- a/lib/guile/autodl +++ b/lib/guile/autodl @@ -122,6 +122,10 @@ (if tag (set! args (append args (list "tag" (cdr tag)))))) (let ((uarg (assoc 'uarg session))) (if uarg (set! args (append args (list "user" (cdr uarg)))))) + (let ((xargs (assoc 'xargs session))) + (if xargs (for-each (lambda (o) + (set! args (append args (list (car o) (cdr o))))) + (cdr xargs)))) (set! resp (apply dc-ecmd-assert 200 args))) (let ((id (car (dc-intresp resp)))) (set! trans @@ -381,7 +385,7 @@ (define (autodl-main args) (let ((dc-server #f) (done #f) (retval 0) (filterexit "")) - (let ((getopt (make-getopt (cdr args) "whs:S:e:p:t:a:I:E:")) (arg #f)) + (let ((getopt (make-getopt (cdr args) "whs:S:e:p:t:a:I:E:x:")) (arg #f)) (do ((arg (getopt) (getopt))) ((not (and (pair? arg) (char? (car arg)))) (set! args arg)) (cond ((eq? (car arg) #\h) (begin (display "usage: autodl [-s server] -S sessfile\n" (current-error-port)) @@ -417,6 +421,11 @@ (set! session (cons (cons 'sexpr (dc-lexsexpr (cdr arg))) session))) ((eq? (car arg) #\w) (set! session (cons '(search-mode . wait) session))) + ((eq? (car arg) #\x) + (let* ((c (assoc 'xargs session)) (p (string-index (cdr arg) #\=)) + (recons (cons (substring (cdr arg) 0 p) (substring (cdr arg) (1+ p))))) + (if c (set-cdr! c (cons recons (cdr c))) + (set! session (cons (cons 'xargs (list recons)) session))))) ) ) )