The kdb Command Source Code: Example of Full Library Utilization


Functions

int parseCommandLine (int argc, char *argv[])
int commandRemove (KDBHandle handle)
 The business logic behind 'kdb rm' command.
int commandMove (KDBHandle handle)
 The business logic behind 'kdb mv' command.
int commandSet (KDBHandle handle)
 The business logic behind 'kdb set' command.
int commandLink (KDBHandle handle)
 The business logic behind 'kdb ln' command.
int commandList (KDBHandle handle)
 The business logic behind 'kdb ls' command.
int commandGet (KDBHandle handle)
 Business logic behind the 'kdb get' command.
int commandEdit (KDBHandle handle)
 Opens an editor to edit an XML representation of the keys.
int commandInfo (KDBHandle handle)
 Business logic behind the 'kdb info' command.
int commandImport (KDBHandle handle)
 Business logic behind the 'kdb import' command.
int commandExport (KDBHandle *handle)
 Business logic behind the 'kdb export' command.
int commandMonitor (KDBHandle handle)
 Business logic behind 'kdb mon' command.

Function Documentation

int parseCommandLine ( int  argc,
char *  argv[] 
)

Use KDB_ROOT as prefix in key name

Definition at line 120 of file kdb/kdb.c.

References KDB_O_RECURSIVE, KEY_TYPE_BINARY, KEY_TYPE_LINK, KEY_TYPE_STRING, KEY_TYPE_UNDEFINED, and strblen().

int commandRemove ( KDBHandle  handle  ) 

The business logic behind 'kdb rm' command.

Example:
 bash$ kdb rm user/env/alias/ls   # get rid to the ls alias
See also:
kdbRemove()
Parameters:
argKeyName name of the key that will be removed

Definition at line 565 of file kdb/kdb.c.

References kdbPrintError(), and kdbRemove().

int commandMove ( KDBHandle  handle  ) 

The business logic behind 'kdb mv' command.

The central method used is kdbRename() but this function is way more robust, and is an example on how to handle errors.

Example:
 bash# kdb mv user/env  user:tatiana/env
See also:
kdbRename()
Parameters:
argKeyName name of the source key
argData name of the target key

Definition at line 596 of file kdb/kdb.c.

References kdbPrintError(), kdbRename(), KEY_SWITCH_END, keyDel(), keyGetNameSize(), and keyNew().

int commandSet ( KDBHandle  handle  ) 

The business logic behind 'kdb set' command.

Sets value to a single key.

Example:
 bash$ kdb set -c "My shell prompt" user/env/env1/PS1 '\h:\w\$'
Parameters:
argKeyName name of the key that will be set
argComment comment to be set to key (-c)
argType type of the key (-t)
argMode access permissions that will be set to sey (-m)
argUID UID to be set to sey
argGID GID to be set to sey
argData the value to the key
argFile a filename to use as the input for the value
See also:
kdbSetKey()

Definition at line 659 of file kdb/kdb.c.

References KDB_RET_NOTFOUND, kdbGetKey(), kdbPrintError(), kdbSetKey(), KEY_SWITCH_END, KEY_TYPE_BINARY, KEY_TYPE_LINK, KEY_TYPE_STRING, KEY_TYPE_UNDEFINED, keyDel(), keyGetType(), keyNew(), keySetAccess(), keySetComment(), keySetDir(), keySetGID(), keySetLink(), keySetRaw(), keySetString(), keySetType(), keySetUID(), and strblen().

int commandLink ( KDBHandle  handle  ) 

The business logic behind 'kdb ln' command.

Example:
 bash$ kdb ln user:valeria/sw/MyApp user/sw/MyApp  # make my personal MyApp configurations be a link to valerias configs
Parameters:
argKeyName name of the target key
argData name of the link key to be created
See also:
kdbLink(), keySetType()

Definition at line 783 of file kdb/kdb.c.

References kdbLink(), and kdbPrintError().

int commandList ( KDBHandle  handle  ) 

The business logic behind 'kdb ls' command.

Parameters:
argKeyName key name to be listed
argRecursive whether to act recursively (-R)
argValue whether to show key values or not (-v)
argAll whether to list also inactive keys (-a)
argShell operate in a shell script friendly mode (-s)
argXML whether to create XML output (-x)
Example:
 bash$ kdb ls -R   # list all keys from system and user trees
 bash$ kdb ls -Ra  # list them all plus the hidden/inactive keys
 bash$ kdb ls -Rav # list all showing value
 bash# kdb ls -Rxv # equivalent to 'kdb export'
 bash$ kdb ls -Rv user/env # list my aliases and environment vars
See also:
kdbGetRootKeys(), kdbGetKeyChildKeys(), keyToStream(), ksToStream()

commandExport() for the 'kdb export' command

Definition at line 838 of file kdb/kdb.c.

References KDB_O_DIR, KDB_O_FULLNAME, KDB_O_FULLUGID, KDB_O_HIER, KDB_O_INACTIVE, KDB_O_NFOLLOWLINK, KDB_O_RECURSIVE, KDB_O_SORT, KDB_O_STATONLY, KDB_O_XMLHEADERS, kdbGetChildKeys(), kdbGetKey(), kdbGetKeyChildKeys(), kdbGetRootKeys(), kdbPrintError(), kdbStatKey(), KEY_SWITCH_END, keyDel(), keyNew(), ksAppend(), ksAppendKeys(), ksDel(), ksNew(), ksPop(), and ksToStream().

Referenced by commandExport().

int commandGet ( KDBHandle  handle  ) 

Business logic behind the 'kdb get' command.

Get a key and return its value to you.

Example:
 bash$ kdb get user/env/alias/ls
 ls -Fh --color=tty
Parameters:
argKeyName key to get value
argDescriptive show also the key comment (-d)
argShell output suitable for shell scripts (-s)
argLong show also the key name (-l)
argFullName with argLong, show the user domain too (-f)
See also:
kdbGetKey(), kdbGetBaseName(), keyGetComment(), keyGetString()

Definition at line 984 of file kdb/kdb.c.

References kdbGetKey(), kdbPrintError(), KEY_SWITCH_END, keyDel(), keyGetBaseName(), keyGetBaseNameSize(), keyGetBinary(), keyGetComment(), keyGetCommentSize(), keyGetFullName(), keyGetFullNameSize(), keyGetName(), keyGetNameSize(), keyGetString(), keyGetType(), keyGetValueSize(), keyIsBin(), keyNew(), and keySetName().

int commandEdit ( KDBHandle  handle  ) 

Opens an editor to edit an XML representation of the keys.

This is one of the most complex commands of the kdb program. It will

  1. retrieve the desired keys
  2. put them inside an editor in an XML format to let the user change them
  3. wait for the editor to finish
  4. reread the edited XML, converting to an internal KeySet
  5. compare original and edited KeySets, with ksCompare(), to detect differences
  6. remove removed keys
  7. update updated keys
  8. add added keys
  9. leave untouched the not-changed keys

Example:
 bash$ EDITOR=kedit kdb edit -R user/env # edit with kedit
 bash# kdb edit -R system/sw/MyApp       # defaults to vi editor
Parameters:
argKeyName the parent key name (and children) that will be edited
argRecursive whether to act recursivelly or not
argAll whether to edit inactive keys or not
EDITOR environment var that defines editor to use, or vi
See also:
keyCompare(), ksCompare(), kdbGetChildKeys(), kdbSetKeys(), ksToStream(), kdbRemoveKey()

Definition at line 1113 of file kdb/kdb.c.

References KDB_O_FULLNAME, KDB_O_FULLUGID, KDB_O_HIER, KDB_O_INACTIVE, KDB_O_NFOLLOWLINK, KDB_O_RECURSIVE, KDB_O_SORT, KDB_O_XMLHEADERS, kdbGetChildKeys(), kdbGetKey(), kdbPrintError(), kdbRemove(), kdbSetKeys(), KEY_SWITCH_END, keyDel(), keyGetFullName(), keyNew(), ksAppend(), ksCompare(), ksCurrent(), ksDel(), ksFromXMLfile(), ksGetSize(), ksNew(), ksNext(), ksRewind(), and ksToStream().

int commandInfo ( KDBHandle  handle  ) 

Business logic behind the 'kdb info' command.

Displays some information about the Elektra library, version, backend, etc.

Example:
 bash$ kdb info
See also:
kdbGetInfo(), kdbInfoToString(), kdbFreeInfo()

Definition at line 1244 of file kdb/kdb.c.

References kdbGetInfo(), and kdbInfoToString().

int commandImport ( KDBHandle  handle  ) 

Business logic behind the 'kdb import' command.

Import an XML file (or standard input) into the key database. This is usefull to import full application's keys, or restore backups.

Example:
 bash$ kdb import myAppDefaultKeys.xml
 bash$ generateKeys | kdb import
See also:
kdbSetKeys(), commandExport()

Definition at line 1270 of file kdb/kdb.c.

References kdbPrintError(), kdbSetKeys(), keyGetFullName(), ksCurrent(), ksDel(), ksFromXML(), ksFromXMLfile(), ksNew(), ksNext(), and ksRewind().

int commandExport ( KDBHandle *  handle  ) 

Business logic behind the 'kdb export' command.

Export a set of keys to an XML format. Usefull to make backups or copy keys to other machine or user. Equivalent to 'kdb ls -xRv base/key/name'

Example:
 bash# kdb export system > systemConfigurationBackup.xml
 bash# kdb export system/sw/MyApp > myAppConfiguration.xml
 bash$ kdb export system/sw/MyApp | sed -e 's|system/sw|user/sw|g' | kdb import
See also:
commandList(), commandImport()

Definition at line 1325 of file kdb/kdb.c.

References commandList(), kdbClose(), and kdbOpen().

int commandMonitor ( KDBHandle  handle  ) 

Business logic behind 'kdb mon' command.

Will block your command line until some change happens to the interested key.

Example:
 bash$ kdb mon system/sw/MyApp/someKey
See also:
kdbMonitorKey(), kdbMonitorKeys()

Definition at line 1364 of file kdb/kdb.c.

References kdbMonitorKey(), KEY_SWITCH_END, KEY_SWITCH_NEEDSYNC, KEY_SWITCH_VALUE, keyDel(), keyNew(), and keyStealValue().


Generated on Mon Dec 17 18:49:00 2007 for Elektra Project by  doxygen 1.5.4