=================================================================== RCS file: /ftp/pub/users/ronald/proyectos/rcs-gopher/RCS/rcs-gopher_gophernicus.scm,v retrieving revision 1.7 retrieving revision 1.1 diff -r1.7 -r1.1 1,10c1 < ;;; PENDIENTE < ;; - Funci??n para generar diffs a partir del nombre de un proyecto, de un archivo y dos revisiones. < ;; - Funci??n para generar el men?? de revisiones para elegir la primera revisi??n. < ;; - Funci??n para generar el men?? de revisiones para elegir la segunda revisi??n y mostrar el diff. < ;; - Funci??n para consultar el mensaje de Log de una revisi??n de un archivo perteneciente a un proyecto. YA < ;; - Funci??n para generar la p??gina principal de un proyecto de rcs-gopher. CASI < ;; - Funci??n para generar la p??gina principal de una colecci??n de proyectos de rcs-gopher. < < (use-modules (ice-9 rdelim) < (ice-9 ftw) --- > (use-modules (ice-9 textual-ports) 13,160c4,14 < (define *host* "sdf.org") < (define *puerto* "70") < (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 (error-en-archivo mensaje) < (simple-format #t "ERROR\n=====\n\n- ~A\n" mensaje)) < < (define (destabulizar cadena) < (string-join < (string-split cadena #\Tab) < " ")) < < (define (host-y-puerto) < (simple-format #f "~A\t~A" *host* < *puerto*)) < < (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 revisi??n) < (simple-format #f "~A~A?revs/~A/~A/~A" < *ruta-base-cgi-bin* < *nombre-del-script-de-rcs-gopher* < nombre-de-proyecto < archivo < revisi??n)) < < (define (rcs-??ltima-revisi??n nombre-de-proyecto archivo) < (simple-format #t "0~A\t~A\t~A\n" < archivo < (obtener-selector-de-revisi??n nombre-de-proyecto < archivo < "ULT") < (host-y-puerto))) < < (define (obtener-selector-men??-secci??n secci??n nombre-de-proyecto) < (simple-format #f "~A~A?~A/~A" < *ruta-base-cgi-bin* < *nombre-del-script-de-rcs-gopher* < secci??n < nombre-de-proyecto)) < < (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\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) < (if (and (member nombre *proyectos*) < (access? (obtener-ruta-de-archivo < nombre < archivo) < R_OK)) < (let ((puerto (open-pipe* OPEN_READ "co" (simple-format #f "-p~A" (if (string= revisi??n "ULT") < "" < revisi??n)) < (obtener-ruta-de-archivo nombre archivo))) < (l??nea "")) < (while ((lambda () < (set! l??nea (read-line puerto)) < (not (eof-object? l??nea)))) < (simple-format #t "~A\n" l??nea))) < (error-en-archivo "No existe este proyecto o archivo."))) < < (define (rcs-ver-log nombre archivo revisi??n) < (if (and (member nombre *proyectos*) < (access? (obtener-ruta-de-archivo < nombre < archivo) < R_OK)) < (let ((puerto (open-pipe* OPEN_READ "rlog" (simple-format #f "-r~A" (if (string= revisi??n "ULT") < "" < revisi??n)) < (obtener-ruta-de-archivo nombre archivo))) < (l??nea "")) < (while ((lambda () < (set! l??nea (read-line puerto)) < (not (eof-object? l??nea)))) < (simple-format #t "~A\n" l??nea))) < (error-en-archivo "No existe este proyecto o archivo."))) < < (define (generar-entradas-comunes nombre) < (for-each (lambda (nombre selector) < (simple-format #t "1~A\t~A\t~A\n" < nombre < selector < (host-y-puerto))) < (list nombre "Revisiones" < "Diffs" "Logs") < (list (obtener-selector-men??-secci??n "inicio" nombre) < (obtener-selector-men??-secci??n "revs" nombre) < (obtener-selector-men??-secci??n "diffs" nombre) < (obtener-selector-men??-secci??n "logs" nombre)))) < < (define (generar-entradas-por-archivo nombre) < (let ((directorio-proyecto (simple-format #f "~A~A/RCS" < *directorio-base-de-proyectos* < nombre))) < (for-each (lambda (archivo) < (if (string-suffix? ",v" archivo) < (rcs-??ltima-revisi??n < nombre < (string-trim-right < archivo < (char-set #\, #\v))))) < (scandir directorio-proyecto)))) < < (define (rcs-men??-principal-proyecto nombre) < (if (and (member nombre *proyectos*) < (access? (obtener-ruta-de-archivo < nombre "") < R_OK)) < (begin < (generar-entradas-comunes nombre) < (generar-entradas-por-archivo nombre)) < (error-en-men??-gopher "No existe este proyecto o archivo."))) --- > (define (rcs-revisiones nombre) > (let ((puerto (open-pipe* OPEN_READ "rlog" "proyectos/rcs-gopher/pruebas_rcs/RCS/hola.lisp,v")) > (l??nea "")) > (while ((lambda () > (set! l??nea (get-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-capitalize l??nea) > "/users/ronald/cgi-bin/rcs-gopher?revs" > (list-ref (string-split (list-ref (string-split l??nea #\Tab) 0) #\Space) 1)))))) 162,166c16 < (rcs-ver-revisi??n "rcs-gopher" "rcs-gopher_gophernicus.scm" "1.2") < (rcs-ver-log "rcs-gopher" "rcs-gopher_gophernicus.scm" "1.2") < (rcs-revisiones "rcs-gopher" "rcs-gopher_gophernicus.scm") < (generar-entradas-comunes "rcs-gopher") < (generar-entradas-por-archivo "rcs-gopher") --- > (rcs-revisiones "hola")