xref: /spdk/scripts/spdkcli.py (revision 438b71d17ebaee1e2d53f4548e6cf91ef1623ce2)
1#!/usr/bin/env python
2import sys
3import argparse
4from os import getuid
5from configshell_fb import ConfigShell
6from spdkcli import UIRoot
7
8
9def main():
10    """
11    Start SPDK CLI
12    :return:
13    """
14    shell = ConfigShell("~/.scripts")
15
16    parser = argparse.ArgumentParser(description="SPDK command line interface")
17    parser.add_argument("-s", dest="socket", help="RPC socket path", default="/var/tmp/spdk.sock")
18    parser.add_argument("-v", dest="verbose", help="Print request/response JSON for configuration calls",
19                        default=False, action="store_true")
20    parser.add_argument("commands", metavar="command", type=str, nargs="*", default="",
21                        help="commands to execute by SPDKCli as one-line command")
22    args = parser.parse_args()
23
24    root_node = UIRoot(args.socket, shell)
25    root_node.verbose = args.verbose
26    try:
27        root_node.refresh()
28    except BaseException:
29        pass
30
31    if len(args.commands) > 0:
32        shell.run_cmdline(" ".join(args.commands))
33        sys.exit(0)
34
35    shell.con.display("SPDK CLI v0.1")
36    shell.con.display("")
37    shell.run_interactive()
38
39
40if __name__ == "__main__":
41    main()
42