[RFC v3 00/12] add argparse library
Chengwen Feng
fengchengwen at huawei.com
Mon Dec 11 10:50:58 CET 2023
Introduce argparse library (which was inspired by the thread [1]),
compared with getopt, it makes it easy to write user-friendly
command-like program.
Note: the [1/6] commit contains usage examples.
[1] https://patchwork.dpdk.org/project/dpdk/patch/20231105054539.22303-2-fengchengwen@huawei.com/
Chengwen Feng (12):
eal: introduce more macro for bit definition
argparse: add argparse library
argparse: support verify argument config
test/argparse: add verify argument config test
argparse: support parse parameters
test/argparse: add parse parameters test
argparse: provide parsing known type API
test/argparse: add parse type test
argparse: support parse unsigned base type
test/argparse: add parse unsigned base type test
argparse: pretty help info
examples/dma: replace getopt with argparse
---
v3: refine the implement, standard new marco for bit definition, add
reserved field, extend flags to 64bit, support u8/u16/u32/u64, add
rte_argparse_parse_type() API, pretty help info, fix dmafwd bug,
also address some of Stephen's comments.
v2: refine the definition, add implement code, add examples which
address Stephen's comments.
app/test/meson.build | 1 +
app/test/test_argparse.c | 835 +++++++++++++++++++++++++
doc/api/doxy-api-index.md | 1 +
doc/api/doxy-api.conf.in | 1 +
doc/guides/prog_guide/argparse_lib.rst | 141 +++++
doc/guides/prog_guide/index.rst | 1 +
examples/dma/dmafwd.c | 279 ++++-----
examples/dma/meson.build | 2 +-
lib/argparse/meson.build | 7 +
lib/argparse/rte_argparse.c | 782 +++++++++++++++++++++++
lib/argparse/rte_argparse.h | 218 +++++++
lib/argparse/version.map | 8 +
lib/eal/include/rte_bitops.h | 64 ++
lib/meson.build | 1 +
14 files changed, 2187 insertions(+), 154 deletions(-)
create mode 100644 app/test/test_argparse.c
create mode 100644 doc/guides/prog_guide/argparse_lib.rst
create mode 100644 lib/argparse/meson.build
create mode 100644 lib/argparse/rte_argparse.c
create mode 100644 lib/argparse/rte_argparse.h
create mode 100644 lib/argparse/version.map
--
2.17.1
More information about the dev
mailing list