/ftp/pub/users/ronald/proyectos/rcs-gopher/RCS/rcs-gopher_gophernicus.scm,v --> standard output revision 1.4 (use-modules (ice-9 rdelim) (ice-9 popen)) (define *proyectos* '("rcs-gopher")) ;(define *directorio-base-de-proyectos* "/ftp/pub/users/ronald/proyectos-rcs/") (define *directorio-base-de-proyectos* "proyectos/") (define *ruta-base-cgi-bin* "/users/ronald/cgi-bin/") (define *nombre-del-script-de-rcs-gopher* "rcs-gopher.sh") (define (error-en-men??-gopher mensaje) (simple-format #t "3~A\tERROR\tERROR\t70\n" mensaje)) (define (destabulizar cadena) (string-join (string-split cadena #\Tab) " ")) (define (obtener-ruta-de-archivo nombre-de-proyecto archivo) (simple-format #f "~A~A/RCS/~A,v" *directorio-base-de-proyectos* nombre-de-proyecto archivo)) (define (obtener-selector-de-revisi??n nombre-de-proyecto archivo) (simple-format #f "~A~A?revs/~A/~A" *ruta-base-cgi-bin* *nombre-del-script-de-rcs-gopher* nombre-de-proyecto archivo)) (define (obtener-n??mero-de-revisi??n texto) ;(list-ref (string-split (list-ref (string-split l??nea #\Tab) 0) #\Space) 1))))) (list-ref (string-split (list-ref (string-split texto #\Tab) 0) #\Space) 1)) (define (rcs-revisiones nombre archivo) (if (and (member nombre *proyectos*) (access? (obtener-ruta-de-archivo nombre archivo) R_OK)) (let ((puerto (open-pipe* OPEN_READ "rlog" (obtener-ruta-de-archivo nombre archivo))) (l??nea "")) (while ((lambda () (set! l??nea (read-line puerto)) (not (eof-object? l??nea)))) (if (string-prefix? "revision" l??nea) (simple-format #t "~A~A\t~A/~A\tsdf.org\t70\n" "0" (string-titlecase (destabulizar l??nea)) (obtener-selector-de-revisi??n nombre archivo) (obtener-n??mero-de-revisi??n l??nea))))) (error-en-men??-gopher "No existe este proyecto o archivo."))) (define (rcs-ver-revisi??n nombre archivo revisi??n) (let ((puerto (open-pipe* OPEN_READ "co" (simple-format #f "-p~A" revisi??n) "proyectos/rcs-gopher/pruebas_rcs/RCS/hola.lisp,v")) (l??nea "")) (while ((lambda () (set! l??nea (read-line puerto)) (not (eof-object? l??nea)))) (simple-format #t "~A\n" l??nea)))) (rcs-ver-revisi??n "hola" "hola.lisp" "1.2") (rcs-revisiones "rcs-gopher" "rcs-gopher_gophernicus.scm")