mirror of
https://github.com/ivabus/pantry
synced 2024-11-26 10:25:05 +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