Hi -
I'm trying to whip up a Factor utility to export unix manpages to
plain text files, with proper formatting. I found this command-line
snippet which works nicely in the macOS terminal:

    man dyld | col -bx > /Users/cwalston/factor/man_dyld.txt

-But I'm having no luck invoking this in Factor code. The following attempt
fails with error code 1, & nothing written to the file:

:: man-page>txt ( cmd path -- )
    [  "man" , cmd , "|" , "col" , "-bx" , ">" , path , ]
    { } make " " join clone try-process ;

-Trying with run-pipeline doesn't do, with or without "|"; result is { 0 1
}:

! "dyld" "/Users/cwalston/factor/man_dyld.txt" man-page>txt
:: man-page>txt ( cmd path -- result )
     [ "man" , cmd , ] { } make
     [ "col" , "-bx" , ">" , path , ] { } make
     [ " " join ] bi@ 2array clone
     run-pipeline ;

-A third approach without 'col -bx' retains the troff formatting
gobbledy-gook,
(N\bNA\bAM\bME\bE for NAME, etc):

! "dyld" get-man-lines
:: get-man-lines ( cmd -- results )
    V{ } clone :> man-lines
    "man" cmd " " glue    ! ( -- string )

    V{ } clone [ push ] keep     ! ( -- seq )
       [ [ [ readln dup ]        ! ( -- str/f str/f )
           [ >string
             man-lines push
           ] while  ! ( -- f )
         ] loop man-lines
       ] swap [ push ] keep clone    ! ( -- { string quot } )
    run-pipeline second ;            ! ( -- vector ) file lines, w/ garbage

I've tried several variations of these 3 approaches, to no avail.
Any suggestions?

~cw

-- 
*~ Memento Amori*
------------------------------------------------------------------------------
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to