FD_ID(1)

NAME
fdshell - using FramerD from the shell

SYNOPSIS
fdshell

DESCRIPTION
fdshell provides a set of scripts and conventions for accessing FramerD databases from the Unix (or other) shells. The scripts collectively use a set of configuration variables and a module, written in FDScript, for using those variables and parsing commands args. The variables are as follows:

%POOL
    The default pool used for creating new frames

%POOLS
    The pools used by the fdshell(7) scripts; these determine which frames are accessible to access and searching

%INDICES
    The background indices used to search for frames with particular slotid/value combinations.

%INDEX
    The foreground index used by default to store newly created frame/slotid/value combinations. Note that this is only used when indices directly associated with the frame's pool are not available or not modifiable. In addition, the variable FDENV identifies a configuration file which will be loaded before any of these configuration variables are used, allowing a particular fdshell setup to be stored in a configuration file and then "switched on" by simply specifing the FDENV variable. In addition to these standard configuration variables, the fdshell scripts all share a set of conventions for parsing command line arguments. The challenge is that FDScript and FramerD are based on richly typed Lisp objects (including vectors, lists, choices, OIDs, numbers, etc) while the Unix shell is pretty much all about strings, especially on the command line. To deal with this, fdshell introduces a parser for strings which are are called on nearly all command line arguments. The rules of this parser are simple: Strings starting with @,#,(, or { are directly parsed by the lisp parser. Strings starting with a colon (:) have the lisp parser called on the rest of the string (forcing a lisp parse); strings starting with a single backslash ( simple return the rest of the string (forcing a string interprtation). Strings starting with "@?" are converted into OIDs by various search methods in the following order:

@?string
    resolves to frames indexed under the OBJ-NAME slot of string or if this fails, @?symbol resolves to frames indexed under the OBJ-NAME slot of the symbol symbol produced by calling read-from-string on the rest of the argument. If even this fails, a more complicated search is done,

@?symbol:value
    resolves to all frames indexed to have value on their slot named symbol according to the current background. The parameter value is interpreted recursively according to these rules. If this fails to resolve to any frames, a final method is tried

@?obj-name:value
    the field obj-name is resolved to any frames with an obj-name slot of obj-name as either a string or a symbol. These frames are then used as slotids in a search for frames possessing value again interpreted recursively.

OPTIONS
fdshell scripts is implemented as FDScript scripts, so their arguments may have CONFIG bindings, as well as accepting the flags -m -c -f to load modules, configs, and scheme files, as described in fdscript(1)

CONFIG VARIABLES

%POOL
    The default pool used for creating new frames

%POOLS
    The pools used by the fdshell(7) scripts; these determine which frames are accessible to access and searching

%INDICES
    The background indices used to search for frames with particular slotid/value combinations.

%INDEX
    The foreground index used by default to store newly created frame/slotid/value combinations. Note that this is only used when indices directly associated with the frame's pool are not available or not modifiable.

BUGS
No known bugs

Revision Info
$Id: fdshell.7,v 1.2 2002/04/02 22:21:07 haase Exp $

AUTHOR
Ken Haase < kh@beingmeta.com >

SEE ALSO
framerd(7) fdd(1) fd_add(1) fd_drop(1) fd_get(1) fd_find(1) fd_test(1) fd_make(1)