xref: /spdk/examples/blob/cli/README.md (revision 552e21cce6cccbf833ed9109827e08337377d7ce)
1The blobcli tool has several options that are listed by using the -h command
2however the three operating modes are covered in more detail here:
3
4Command Mode
5------------
6This is the default and will just execute one command at a time. It's simple
7but the downside is that if you are going to interact quite a bit with the
8blobstore, the startup time for the application can be cumbersome.
9
10Shell Mode
11----------
12You startup shell mode by using the -S command. At that point you will get
13a "blob>" prompt where you can enter any of the commands, including -h,
14to execute them. You can stil enter just one at a time but the initial
15startup time for the application will not get in the way between commands
16anymore so it is much more usable.
17
18Script (aka test) Mode
19----------------------
20In script mode you just supply one command with a filename when you start
21the cli, for example `blobcli -T test.bs` will feed the tool the file
22called test.bs which contains a series of commands that will all run
23automatically and, like shell mode, will only initialize one time so is
24quick.
25
26The script file format (example) is shown below.  Comments are allowed and
27each line should contain one valid command (and its parameters) only. In
28order to operate on blobs via their ID value, use the token $Bn where n
29represents the instance of the blob created in the script.
30
31For example, the line `-s $B0` will operate on the blobid of the first
32blob created in the script (0 index based). `$B2` represents the third
33blob created in the script.
34
35If you start test mode with the additional "ignore" option, any invalid
36script lines will simply be skipped, otherwise the tool will exit if
37it runs into an invalid line (ie './blobcli -T test.bs ignore`).
38
39Sample test/bs file:
40~~~{.sh}
41# this is a comment
42-i
43-s bs
44-l bdevs
45-n 1
46-s bs
47-s $B0
48-n 2
49-s $B1
50-m $B0 Makefile
51-d $B0 M.blob
52-f $B1 65
53-d $B1 65.blob
54-s bs
55-x $B0 b0key boval
56-x $B1 b1key b1val
57-r $B0 b0key
58-s $B0
59-s $B1
60-s bs
61~~~
62