.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    nr % 0
.    rr F
.\}
.el \{\
.    de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "GNC-FQ-HELPER 1"
.TH GNC-FQ-HELPER 1 "2012-09-24" "perl v5.14.2" "User Contributed Perl Documentation"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
gnc\-fq\-helper  \-  allows gnucash to communicate with Finance::Quote
                  over pipes from guile. The requests and responses
                  are scheme forms.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
gnc-fq-helper
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
Input: (on standard input \- one entry per line and one line per
entry, and double quotes must only be delimiters, not string
content \*(-- remember, we don't have a real scheme parser on the perl
side :>).
.PP
(<method\-name> symbol symbol symbol ...)
.PP
where <method\-name> indicates the desired Finance::Quote method.
The currently recognized subset is yahoo, yahoo_europe,
fidelity_direct, troweprice_direct, vanguard, asx, tiaacref,
and currency.
.PP
For currency quotes, the symbols alternate between the 'from'
and 'to' currencies.
.PP
For example:
.PP
(yahoo \*(L"\s-1IBM\s0\*(R" \*(L"\s-1LNUX\s0\*(R")
(fidelity_direct \*(L"\s-1FBIOX\s0\*(R" \*(L"\s-1FSELX\s0\*(R")
(currency \*(L"\s-1USD\s0\*(R" \*(L"\s-1AUD\s0\*(R")
.PP
Output (on standard output, one output form per input line):
.PP
Schemified version of gnc-fq's output, basically an alist of
alists, as in the example below.  Right now, only the fields that
this script knows about (and knows how to convert to scheme) are
returned, so the conversion function will have to be updated
whenever Finance::Quote changes.  Currently you'll get symbol,
gnc:time\-no\-zone, and currency, and either last, nav, or price.
Fields with gnc: prefixes are non\-Finance::Quote fields.
gnc:time\-no\-zone is returned as a string of the form \*(L"YYYY-MM-DD
\&\s-1HH:MM:SS\s0\*(R", basically the unmolested (and underspecified) output of
the quote source.  It's up to you to know what it's proper timezone
really is.  i.e. if you know the time was in America/Chicago, you'll
need to convert it to that.
.PP
For example:
.PP
.Vb 10
\& $ echo \*(Aq(yahoo "CSCO" "JDSU" "^IXIC")\*(Aq | ./gnc\-fq\-helper
\&(("CSCO" (symbol . "CSCO")
\&         (gnc:time\-no\-zone . "2001\-03\-13 19:27:00")
\&         (last . 20.375)
\&         (currency . "USD"))
\& ("JDSU" (symbol . "JDSU")
\&         (gnc:time\-no\-zone . "2001\-03\-13 19:27:00")
\&         (last . 23.5625)
\&         (currency . "USD"))
\&("^IXIC" (symbol . ^IXIC)
\&         (gnc:time\-no\-zone . 2002\-12\-04 17:16:00)
\&         (last . 1430.35)
\&         (currency . failed\-conversion)))
.Ve
.PP
On error, the overall result may be #f, or on individual errors, the
list sub-item for a given symbol may be #f, like this:
.PP
.Vb 6
\& $ echo \*(Aq(yahoo "CSCO" "JDSU")\*(Aq | ./gnc\-fq\-helper
\&(#f
\& ("JDSU" (symbol . "JDSU")
\&         (gnc:time\-no\-zone . "2001\-03\-13 19:27:00")
\&         (last . 23.5625)
\&         (currency . "USD")))
.Ve
.PP
further, errors may be stored with each quote as indicated in
Finance::Quote, and whenever the conversion to scheme data fails,
the field will have the value 'failed\-conversion, and accordingly
this symbol will never be a legitimate conversion.
.PP
Exit status
.PP
0 \- success
non-zero \- failure
