项目作者: angt

项目描述 :
arg(z)
高级语言: C
项目地址: git://github.com/angt/argz.git
创建时间: 2018-02-10T19:48:22Z
项目社区:https://github.com/angt/argz

开源协议:BSD 2-Clause "Simplified" License

下载


arg(z)

A minimal command line library, with out-of-the-box auto-completion.

Compile readme.c:

  1. $ gcc -o readme readme.c

Enable auto-competion for bash:

  1. $ source comp/argz.bash
  2. $ complete -F _argz ./readme

A minimal help command is automatically generated:

  1. $ ./readme help
  2. size a size value
  3. time a time value
  4. percent a custom percent value
  5. file a file value

Option size accepts some suffixes:

  1. $ ./readme size 10m
  2. size=10485760 time=0 percent=50 file=
  3. $ ./readme size 10M
  4. size=10485760 time=0 percent=50 file=
  5. $ ./readme size 10MiB
  6. size=10485760 time=0 percent=50 file=
  7. $ ./readme size 10Mibytes
  8. size=10485760 time=0 percent=50 file=
  9. $ ./readme size 10MB
  10. size=10000000 time=0 percent=50 file=
  11. $ ./readme size 10MBytes
  12. size=10000000 time=0 percent=50 file=
  13. $ ./readme size 10Mb
  14. size=1250000 time=0 percent=50 file=
  15. $ ./readme size 10Mibits
  16. size=1310720 time=0 percent=50 file=

Option time too:

  1. $ ./readme time 10s
  2. size=0 time=10000 percent=50 file=
  3. $ ./readme time 10m
  4. size=0 time=600000 percent=50 file=
  5. $ ./readme time 10h
  6. size=0 time=36000000 percent=50 file=
  7. $ ./readme time 10d
  8. size=0 time=864000000 percent=50 file=

Malformed options are reported:

  1. $ ./readme bad
  2. Option bad is unknown
  3. $ ./readme size
  4. Option size requires a number
  5. $ ./readme size 0
  6. Option size must be a number greater than or equal to 1
  7. $ ./readme size NaN
  8. Option size is not a valid number
  9. $ ./readme time 1y
  10. Option time is badly suffixed

Classic input formats are supported:

  1. $ ./readme size -1
  2. size=18446744073709551615 time=0 percent=50 file=
  3. $ ./readme size 0xFF
  4. size=255 time=0 percent=50 file=
  5. $ ./readme size 010
  6. size=8 time=0 percent=50 file=

Duplicates are detected:

  1. $ ./readme size 10 size 20
  2. Option size is already set