Fsdb::Filter::cgi_to_db(3)

NAME
cgi_to_db - convert stored CGI files (from CGI.pm) to fsdb

SYNOPSIS
    cgi_to_db [-duU] [-e EmptyValue] [cgi-files...]

DESCRIPTION
Converts all stored CGI files (from CGI.pm) to fsdb, optionally unescaping the contents. When contents are unescaped, CR NL is recoded as ``\n''.

Output is always in fsdb list format with double space (type ``S'') field separator.

Unlike most Fsdb programs, the input to this program is not usually from standard input. However, the program will take "-i" options.

This program requires temporary storage equal to the size of the data (so that it can handle the case of different entries having different headers).

OPTIONS

-u or --unescape
    do unescape data, converting CGI escape codes like %xx to regular characters (default)

-U or --nounescape
    do not unescape data, but leave it CGI-encoded

-e E or --empty E
    give value E as the value for empty (null) records

-T TmpDir
    where to put tmp files. Also uses environment variable TMPDIR, if -T is not specified. Default is /tmp.

This module also supports the standard fsdb options:

-d  Enable debugging output.

-i or --input InputSource
    Read from InputSource, typically a file name, or "-" for standard input, or (if in Perl) a IO::Handle, Fsdb::IO or Fsdb::BoundedQueue objects.

-o or --output OutputDestination
    Write to OutputDestination, typically a file name, or "-" for standard output, or (if in Perl) a IO::Handle, Fsdb::IO or Fsdb::BoundedQueue objects.

--autorun or --noautorun
    By default, programs process automatically, but Fsdb::Filter objects in Perl do not run until you invoke the run() method. The "--(no)autorun" option controls that behavior within Perl.

--help
    Show help.

--man
    Show full manual.

SAMPLE USAGE

  Input:
file A (TEST/cgi_to_db_ex.in):

    name=test
    id=111-11-1111
    email=test%40usc.edu
    submit_time=Tue%20Jan%2014%2011%3A32%3A39%202003
    =

file B (TEST/cgi_to_db_ex.in-2):

    name=test2
    id=222-22-2222
    email=test2%40usc.edu
    newfield=foo
    emptyfield=
    submit_time=Tue%20Jan%2024%2022%3A32%3A39%202003
    =

  Command:
    cgi_to_db TEST/cgi_to_db_ex.in TEST/cgi_to_db_ex.in-2

  Output:
    #fsdb -R C -F S name id email submit_time newfield emptyfield
    name:  test
    id:  111-11-1111
    email:  test\@usc.edu
    submit_time:  Tue Jan 14 11:32:39 2003

    name:  test2
    id:  222-22-2222
    email:  test2\@usc.edu
    newfield:  foo
    emptyfield:  -
    submit_time:  Tue Jan 24 22:32:39 2003

    #  | cgi_to_db TEST/cgi_to_db_ex.in TEST/cgi_to_db_ex.in-2

SEE ALSO
Fsdb. CGI(3pm). <http://stein.cshl.org/boulder/>. <http://stein.cshl.org/WWW/software/CGI/>

CLASS FUNCTIONS

  new
    $filter = new Fsdb::Filter::cgi_to_db(@arguments);

Create a new cgi_to_db object, taking command-line arguments.

  set_defaults
    $filter->set_defaults();

Internal: set up defaults.

  parse_options
    $filter->parse_options(@ARGV);

Internal: parse command-line arguments.

  setup
    $filter->setup();

Internal: setup, parse headers.

  run
    $filter->run();

Internal: run over each rows.

AUTHOR and COPYRIGHT
Copyright (C) 1991-2018 by John Heidemann <johnh@isi.edu>

This program is distributed under terms of the GNU general public license, version 2. See the file COPYING with the distribution for details.