mirror of
https://github.com/ivabus/pantry
synced 2024-11-23 00:45:07 +03:00
+popt
This commit is contained in:
parent
295674a7b4
commit
daae918d60
1 changed files with 72 additions and 0 deletions
72
projects/rpm.org/popt/package.yml
Normal file
72
projects/rpm.org/popt/package.yml
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
distributable:
|
||||||
|
url: http://ftp.rpm.org/popt/releases/popt-1.x/popt-{{ version.raw }}.tar.gz
|
||||||
|
strip-components: 1
|
||||||
|
|
||||||
|
versions:
|
||||||
|
github: rpm-software-management/popt/releases/tags
|
||||||
|
strip:
|
||||||
|
- /^popt-/
|
||||||
|
- /-release$/
|
||||||
|
|
||||||
|
build:
|
||||||
|
dependencies:
|
||||||
|
tea.xyz/gx/cc: c99
|
||||||
|
tea.xyz/gx/make: '*'
|
||||||
|
script: |
|
||||||
|
./configure --disable-debug --disable-dependency-tracking --prefix={{ prefix }}
|
||||||
|
make install
|
||||||
|
|
||||||
|
test:
|
||||||
|
dependencies:
|
||||||
|
tea.xyz/gx/cc: c99
|
||||||
|
script: |
|
||||||
|
mv $FIXTURE test.c
|
||||||
|
gcc test.c -lpopt -o test
|
||||||
|
test "$(./test -a 123 -b 456 -c 789 -f)" = "123::456::789::1::0"
|
||||||
|
test "$(./test --optiona=987 --optionb=654 --optionc=321 --flag2)" = "987::654::321::0::1"
|
||||||
|
fixture: |
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <popt.h>
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
int optiona=-1, optionb=-1, optionc=-1, flag1=0, flag2=0;
|
||||||
|
poptContext pc;
|
||||||
|
struct poptOption po[] = {
|
||||||
|
{"optiona", 'a', POPT_ARG_INT, &optiona, 11001, "descrip1", "argDescrip1"},
|
||||||
|
{"optionb", 'b', POPT_ARG_INT, &optionb, 11002, "descrip2", "argDescrip2"},
|
||||||
|
{"optionc", 'c', POPT_ARG_INT, &optionc, 11003, "descrip3", "argDescrip3"},
|
||||||
|
{"flag1", 'f', POPT_ARG_NONE, &flag1, 11004, "descrip4", "argDescrip4"},
|
||||||
|
{"flag2", 'g', POPT_ARG_NONE, &flag2, 11005, "descrip5", "argDescrip5"},
|
||||||
|
POPT_AUTOHELP
|
||||||
|
{NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
pc = poptGetContext(NULL, argc, (const char **)argv, po, 0);
|
||||||
|
poptSetOtherOptionHelp(pc, "[ARG...]");
|
||||||
|
if (argc < 2) {
|
||||||
|
poptPrintUsage(pc, stderr, 0);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
int val;
|
||||||
|
while ((val = poptGetNextOpt(pc)) >= 0);
|
||||||
|
if (val != -1) {
|
||||||
|
switch(val) {
|
||||||
|
case POPT_ERROR_NOARG:
|
||||||
|
printf("Argument missing for an option\\n");
|
||||||
|
exit(1);
|
||||||
|
case POPT_ERROR_BADOPT:
|
||||||
|
printf("Option's argument could not be parsed\\n");
|
||||||
|
exit(1);
|
||||||
|
case POPT_ERROR_BADNUMBER:
|
||||||
|
case POPT_ERROR_OVERFLOW:
|
||||||
|
printf("Option could not be converted to number\\n");
|
||||||
|
exit(1);
|
||||||
|
default:
|
||||||
|
printf("Unknown error in option processing\\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("%d::%d::%d::%d::%d", optiona, optionb, optionc, flag1, flag2);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue