The *pmemobjcli* is a CLI application for testing libpmemobj API.
It works in shell mode where commands are read from stdin or you
can invoke it with a script file. It is also possible to run the
*pmemobjcli" as a script using -s option. The *example.posc* is
an example of script written in *pmemobjcli* syntax.

* Example usage *

	** First you need to create a pool:

		$ pmempool create obj pool.obj

	** Running in shell mode:

		$ ./pmemobjcli pool.obj
		pmemobjcli $ h
		<help message with list of all commands...>

	** Running with a script:

		$ ./pmemobjcli -s example.posc pool.obj

	** Running as a script:

		$ ./example.posc pool.obj

* Environment variables *

- PMEMOBJCLI_EXIT_ON_ERROR	- terminate application if any error occurred
				  during parsing the command or execution
				  [default: 0]
- PMEMOBJCLI_ECHO_MODE		- print input on the output [default: 0]
- PMEMOBJCLI_COMMENTS		- enable parsing comments [default: 1]
- PMEMOBJCLI_EMPTY_CMDS		- enable empty commands [default: 1]
- PMEMOBJCLI_LONG_NAMES		- enable long names of commands [default: 1]
- PMEMOBJCLI_HELP		- enable help command [default: 1]

* Using with AFL *

The *pmemobjcli* application was developed to help testing the libpmemobj
library with AFL (American Fuzzy Lop) tool. For this purpose it is recommended
to use a PMEMOBJ_CONF='copy_on_write.at_open=1' which causes each pool file
to be mapped with MAP_PRIVATE flag set.

If the script for pmemobjcli uses long commands ("pmemobj_root" instead
of "pr"), before running it under AFL it is recommended to first translate
the script to use short commands using -p option.

	$ ./pmemobjcli -s example.posc -p > example_short.posc
	And now under AFL:
	$ ./pmemobjcli -s example_short.posc pool.obj
