Files
infoedit/infoedit.md
T
2020-06-02 20:47:18 -04:00

133 lines
3.0 KiB
Markdown

# A tool used to edit NFD configuration files
This tool is majorly developed for use in NFD integration tests. However, it can also used to
edit any INFO-formatted files.
Each invocation of `infoedit` tool performs exactly one edit and the file is modified in place.
To perform multiple edits, `infoedit` tool should be invoked multiple times on the same file.
## Usage
infoedit [-f file] [-s|d|a|r path] [-v value]
OPTIONS:
* `-f file`: specifies a file to edit
* `-s path`: specifies a property-tree path to modify
* `-p path`: specifies a property-tree path to add (duplicates can be added)
* `-v value`: used with -s path or -p path, sets the value at the path
* `-d path`: deletes all subtrees matching the path
* `-a path`: adds a subtree at the path; the subtree is read from stdin
* `-r path`: replaces a subtree at the path; equivalent to -d path followed by -a path
## Sample commands for NFD
./infoedit -f nfd.conf -s general.user -v ndn.user
./infoedit -f nfd.conf -s tables.strategy_choice./site -v /localhost/nfd/strategy/broadcast
./infoedit -f nfd.conf -d tables.strategy_choice./
./infoedit -f nfd.conf -d authorizations
./infoedit -f nfd.conf -a rib.localhost_security <<<EOT
trust-anchor
{
type any
}
EOT
### nfd.conf used in above sample
; comment1
general ; comment2
{
user user ; comment3
group group
}
tables
{
strategy_choice
{
/ /localhost/nfd/strategy/best-route
/site /localhost/nfd/strategy/broadcast
}
}
authorizations
{
authorize
{
certfile file1.cert
}
authorize
{
certfile file2.cert
}
}
### nfd.conf after carrying out all commands in above sample
general
{
user ndn.user
group group
}
tables
{
strategy_choice
{
/site /localhost/nfd/strategy/broadcast
}
}
rib
{
localhost_security
{
trust-anchor
{
type any
}
}
}
## Sample commands for NLSR
./infoedit -f nlsr.conf -d security.cert-to-publish
./infoedit -f nlsr.conf -p security.cert-to-publish -v security/root.cert
./infoedit -f nlsr.conf -p security.cert-to-publish -v security/site.cert
./infoedit -f nlsr.conf -p security.cert-to-publish -v security/operator.cert
./infoedit -f nlsr.conf -p security.cert-to-publish -v security/router.cert
### nlsr.conf used in above sample
...
security
{
...
; cert-to-publish "root.cert"
; cert-to-publish "site.cert"
; cert-to-publish "operator.cert"
cert-to-publish "router.cert"
}
### nlsr.conf after carrying out all commands in above sample
...
security
{
...
cert-to-publish security/root.cert
cert-to-publish security/site.cert
cert-to-publish security/operator.cert
cert-to-publish security/router.cert
}
###