21 #define FIX_UNUSED(X) (void) (X)
28 const char *
gengetopt_args_info_purpose =
"prints to stdout the created OFX file based on the options you pass it.\ncurrently it will only create a statement request file. you can POST this to\nan OFX server to request a statement from that financial institution for that\naccount.";
32 const char *gengetopt_args_info_versiontext =
"";
37 " -h, --help Print help and exit",
38 " -V, --version Print version and exit",
39 " --fipid=STRING FI partner identifier (looks up fid, org & url from\n partner server)",
40 " --fid=STRING FI identifier",
41 " --org=STRING FI org tag",
42 " --bank=STRING IBAN bank identifier",
43 " --broker=STRING Broker identifier",
44 " --user=STRING User name",
45 " --pass=STRING Password",
46 " --acct=STRING Account ID",
47 " --type=INT Account Type 1=checking 2=invest 3=ccard",
48 " --past=LONG How far back to look from today (in days)",
49 " --url=STRING Url to POST the data to (otherwise goes to stdout)",
50 " --trid=INT Transaction id",
52 " -s, --statement-req Request for a statement",
53 " -a, --accountinfo-req Request for a list of accounts",
54 " -p, --payment-req Request to make a payment",
55 " -i, --paymentinquiry-req Request to inquire about the status of a payment",
56 " -b, --bank-list List all known banks",
57 " -f, --bank-fipid List all fipids for a given bank",
58 " -v, --bank-services List supported services for a given fipid",
59 " --allsupport List all banks which support online banking",
67 } cmdline_parser_arg_type;
80 gengetopt_strdup (
const char *s);
113 FIX_UNUSED (args_info);
175 if (strlen(gengetopt_args_info_versiontext) > 0)
176 printf(
"\n%s\n", gengetopt_args_info_versiontext);
179 static void print_help_common(
void)
187 if (len_purpose > 0) {
191 if (len_usage || len_purpose) {
212 clear_given (args_info);
213 clear_args (args_info);
214 init_args_info (args_info);
243 free_string_field (
char **s)
257 free_string_field (&(args_info->
fipid_arg));
259 free_string_field (&(args_info->
fid_arg));
260 free_string_field (&(args_info->
fid_orig));
261 free_string_field (&(args_info->
org_arg));
262 free_string_field (&(args_info->
org_orig));
263 free_string_field (&(args_info->
bank_arg));
264 free_string_field (&(args_info->
bank_orig));
267 free_string_field (&(args_info->
user_arg));
268 free_string_field (&(args_info->
user_orig));
269 free_string_field (&(args_info->
pass_arg));
270 free_string_field (&(args_info->
pass_orig));
271 free_string_field (&(args_info->
acct_arg));
272 free_string_field (&(args_info->
acct_orig));
273 free_string_field (&(args_info->
type_orig));
274 free_string_field (&(args_info->
past_orig));
275 free_string_field (&(args_info->
url_arg));
276 free_string_field (&(args_info->
url_orig));
277 free_string_field (&(args_info->
trid_orig));
281 free (args_info->
inputs [i]);
286 clear_given (args_info);
291 write_into_file(FILE *outfile,
const char *opt,
const char *arg,
const char *values[])
295 fprintf(outfile,
"%s=\"%s\"\n", opt, arg);
297 fprintf(outfile,
"%s\n", opt);
314 write_into_file(outfile,
"help", 0, 0 );
316 write_into_file(outfile,
"version", 0, 0 );
318 write_into_file(outfile,
"fipid", args_info->
fipid_orig, 0);
320 write_into_file(outfile,
"fid", args_info->
fid_orig, 0);
322 write_into_file(outfile,
"org", args_info->
org_orig, 0);
324 write_into_file(outfile,
"bank", args_info->
bank_orig, 0);
326 write_into_file(outfile,
"broker", args_info->
broker_orig, 0);
328 write_into_file(outfile,
"user", args_info->
user_orig, 0);
330 write_into_file(outfile,
"pass", args_info->
pass_orig, 0);
332 write_into_file(outfile,
"acct", args_info->
acct_orig, 0);
334 write_into_file(outfile,
"type", args_info->
type_orig, 0);
336 write_into_file(outfile,
"past", args_info->
past_orig, 0);
338 write_into_file(outfile,
"url", args_info->
url_orig, 0);
340 write_into_file(outfile,
"trid", args_info->
trid_orig, 0);
342 write_into_file(outfile,
"statement-req", 0, 0 );
344 write_into_file(outfile,
"accountinfo-req", 0, 0 );
346 write_into_file(outfile,
"payment-req", 0, 0 );
348 write_into_file(outfile,
"paymentinquiry-req", 0, 0 );
350 write_into_file(outfile,
"bank-list", 0, 0 );
352 write_into_file(outfile,
"bank-fipid", 0, 0 );
354 write_into_file(outfile,
"bank-services", 0, 0 );
356 write_into_file(outfile,
"allsupport", 0, 0 );
369 outfile = fopen(filename,
"w");
386 cmdline_parser_release (args_info);
391 gengetopt_strdup (
const char *s)
397 result = (
char*)malloc(strlen(s) + 1);
398 if (result == (
char*)0)
433 result = cmdline_parser_internal (argc, argv, args_info, params, 0);
435 if (result == EXIT_FAILURE)
456 result = cmdline_parser_internal (argc, argv, args_info, ¶ms, 0);
458 if (result == EXIT_FAILURE)
470 FIX_UNUSED (args_info);
471 FIX_UNUSED (prog_name);
476 static char *package_name = 0;
497 int update_arg(
void *field,
char **orig_field,
498 unsigned int *field_given,
unsigned int *prev_given,
499 char *value,
const char *possible_values[],
500 const char *default_value,
501 cmdline_parser_arg_type arg_type,
503 int no_free,
int multiple_option,
504 const char *long_opt,
char short_opt,
505 const char *additional_error)
508 const char *val = value;
516 if (!multiple_option && prev_given && (*prev_given || (
check_ambiguity && *field_given)))
518 if (short_opt !=
'-')
519 fprintf (stderr,
"%s: `--%s' (`-%c') option given more than once%s\n",
520 package_name, long_opt, short_opt,
521 (additional_error ? additional_error :
""));
523 fprintf (stderr,
"%s: `--%s' option given more than once%s\n",
524 package_name, long_opt,
525 (additional_error ? additional_error :
""));
529 FIX_UNUSED (default_value);
531 if (field_given && *field_given && !
override)
538 val = possible_values[found];
542 if (val) *((
int *)field) = strtol (val, &stop_char, 0);
545 if (val) *((
long *)field) = (long)strtol (val, &stop_char, 0);
549 string_field = (
char **)field;
550 if (!no_free && *string_field)
551 free (*string_field);
552 *string_field = gengetopt_strdup (val);
563 if (val && !(stop_char && *stop_char ==
'\0')) {
564 fprintf(stderr,
"%s: invalid numeric value: %s\n", package_name, val);
577 if (value && orig_field) {
583 *orig_field = gengetopt_strdup (value);
593 cmdline_parser_internal (
599 int error_occurred = 0;
607 package_name = argv[0];
611 FIX_UNUSED(
override);
618 FIX_UNUSED(check_ambiguity);
632 int option_index = 0;
634 static struct option long_options[] = {
635 {
"help", 0, NULL,
'h' },
636 {
"version", 0, NULL,
'V' },
637 {
"fipid", 1, NULL, 0 },
638 {
"fid", 1, NULL, 0 },
639 {
"org", 1, NULL, 0 },
640 {
"bank", 1, NULL, 0 },
641 {
"broker", 1, NULL, 0 },
642 {
"user", 1, NULL, 0 },
643 {
"pass", 1, NULL, 0 },
644 {
"acct", 1, NULL, 0 },
645 {
"type", 1, NULL, 0 },
646 {
"past", 1, NULL, 0 },
647 {
"url", 1, NULL, 0 },
648 {
"trid", 1, NULL, 0 },
649 {
"statement-req", 0, NULL,
's' },
650 {
"accountinfo-req", 0, NULL,
'a' },
651 {
"payment-req", 0, NULL,
'p' },
652 {
"paymentinquiry-req", 0, NULL,
'i' },
653 {
"bank-list", 0, NULL,
'b' },
654 {
"bank-fipid", 0, NULL,
'f' },
655 {
"bank-services", 0, NULL,
'v' },
656 {
"allsupport", 0, NULL, 0 },
660 c = getopt_long (argc, argv,
"hVsapibfv", long_options, &option_index);
679 reset_group_command (args_info);
684 &(local_args_info.statement_req_given), optarg, 0, 0, ARG_NO,
685 check_ambiguity,
override, 0, 0,
686 "statement-req",
's',
694 reset_group_command (args_info);
699 &(local_args_info.accountinfo_req_given), optarg, 0, 0, ARG_NO,
700 check_ambiguity,
override, 0, 0,
701 "accountinfo-req",
'a',
709 reset_group_command (args_info);
714 &(local_args_info.payment_req_given), optarg, 0, 0, ARG_NO,
715 check_ambiguity,
override, 0, 0,
724 reset_group_command (args_info);
729 &(local_args_info.paymentinquiry_req_given), optarg, 0, 0, ARG_NO,
730 check_ambiguity,
override, 0, 0,
731 "paymentinquiry-req",
'i',
739 reset_group_command (args_info);
744 &(local_args_info.bank_list_given), optarg, 0, 0, ARG_NO,
745 check_ambiguity,
override, 0, 0,
754 reset_group_command (args_info);
759 &(local_args_info.bank_fipid_given), optarg, 0, 0, ARG_NO,
760 check_ambiguity,
override, 0, 0,
769 reset_group_command (args_info);
774 &(local_args_info.bank_services_given), optarg, 0, 0, ARG_NO,
775 check_ambiguity,
override, 0, 0,
776 "bank-services",
'v',
784 if (strcmp (long_options[option_index].name,
"fipid") == 0)
788 if (update_arg( (
void *)&(args_info->
fipid_arg),
790 &(local_args_info.fipid_given), optarg, 0, 0, ARG_STRING,
791 check_ambiguity,
override, 0, 0,
798 else if (strcmp (long_options[option_index].name,
"fid") == 0)
802 if (update_arg( (
void *)&(args_info->
fid_arg),
804 &(local_args_info.fid_given), optarg, 0, 0, ARG_STRING,
805 check_ambiguity,
override, 0, 0,
812 else if (strcmp (long_options[option_index].name,
"org") == 0)
816 if (update_arg( (
void *)&(args_info->
org_arg),
818 &(local_args_info.org_given), optarg, 0, 0, ARG_STRING,
819 check_ambiguity,
override, 0, 0,
826 else if (strcmp (long_options[option_index].name,
"bank") == 0)
830 if (update_arg( (
void *)&(args_info->
bank_arg),
832 &(local_args_info.bank_given), optarg, 0, 0, ARG_STRING,
833 check_ambiguity,
override, 0, 0,
840 else if (strcmp (long_options[option_index].name,
"broker") == 0)
844 if (update_arg( (
void *)&(args_info->
broker_arg),
846 &(local_args_info.broker_given), optarg, 0, 0, ARG_STRING,
847 check_ambiguity,
override, 0, 0,
854 else if (strcmp (long_options[option_index].name,
"user") == 0)
858 if (update_arg( (
void *)&(args_info->
user_arg),
860 &(local_args_info.user_given), optarg, 0, 0, ARG_STRING,
861 check_ambiguity,
override, 0, 0,
868 else if (strcmp (long_options[option_index].name,
"pass") == 0)
872 if (update_arg( (
void *)&(args_info->
pass_arg),
874 &(local_args_info.pass_given), optarg, 0, 0, ARG_STRING,
875 check_ambiguity,
override, 0, 0,
882 else if (strcmp (long_options[option_index].name,
"acct") == 0)
886 if (update_arg( (
void *)&(args_info->
acct_arg),
888 &(local_args_info.acct_given), optarg, 0, 0, ARG_STRING,
889 check_ambiguity,
override, 0, 0,
896 else if (strcmp (long_options[option_index].name,
"type") == 0)
900 if (update_arg( (
void *)&(args_info->
type_arg),
902 &(local_args_info.type_given), optarg, 0, 0, ARG_INT,
903 check_ambiguity,
override, 0, 0,
910 else if (strcmp (long_options[option_index].name,
"past") == 0)
914 if (update_arg( (
void *)&(args_info->
past_arg),
916 &(local_args_info.past_given), optarg, 0, 0, ARG_LONG,
917 check_ambiguity,
override, 0, 0,
924 else if (strcmp (long_options[option_index].name,
"url") == 0)
928 if (update_arg( (
void *)&(args_info->
url_arg),
930 &(local_args_info.url_given), optarg, 0, 0, ARG_STRING,
931 check_ambiguity,
override, 0, 0,
938 else if (strcmp (long_options[option_index].name,
"trid") == 0)
942 if (update_arg( (
void *)&(args_info->
trid_arg),
944 &(local_args_info.trid_given), optarg, 0, 0, ARG_INT,
945 check_ambiguity,
override, 0, 0,
952 else if (strcmp (long_options[option_index].name,
"allsupport") == 0)
956 reset_group_command (args_info);
961 &(local_args_info.allsupport_given), optarg, 0, 0, ARG_NO,
962 check_ambiguity,
override, 0, 0,
975 fprintf (stderr,
"%s: option unknown: %c%s\n",
CMDLINE_PARSER_PACKAGE, c, (additional_error ? additional_error :
""));
982 fprintf (stderr,
"%s: %d options of group command were given. At most one is required%s.\n", argv[0], args_info->
command_group_counter, (additional_error ? additional_error :
""));
988 FIX_UNUSED(check_required);
990 cmdline_parser_release (&local_args_info);
992 if ( error_occurred )
993 return (EXIT_FAILURE);
998 int found_prog_name = 0;
1005 if (argv[i++] == argv[0]) {
1006 found_prog_name = 1;
1011 args_info->
inputs_num = argc - optind - found_prog_name;
1013 (
char **)(malloc ((args_info->
inputs_num)*
sizeof(
char *))) ;
1014 while (optind < argc)
1015 if (argv[optind++] != argv[0])
1016 args_info->
inputs[ i++ ] = gengetopt_strdup (argv[optind-1]) ;
1023 cmdline_parser_release (&local_args_info);
1024 return (EXIT_FAILURE);
#define CMDLINE_PARSER_VERSION
the program version
int cmdline_parser_dump(FILE *outfile, struct gengetopt_args_info *args_info)
int cmdline_parser(int argc, char **argv, struct gengetopt_args_info *args_info)
int cmdline_parser_file_save(const char *filename, struct gengetopt_args_info *args_info)
const char * gengetopt_args_info_purpose
the purpose string of the program
const char * gengetopt_args_info_help[]
all the lines making the help output
int cmdline_parser2(int argc, char **argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required)
int cmdline_parser_required(struct gengetopt_args_info *args_info, const char *prog_name)
void cmdline_parser_print_version(void)
const char * gengetopt_args_info_usage
the usage string of the program
int cmdline_parser_ext(int argc, char **argv, struct gengetopt_args_info *args_info, struct cmdline_parser_params *params)
void cmdline_parser_init(struct gengetopt_args_info *args_info)
const char * gengetopt_args_info_description
the description string of the program
void cmdline_parser_print_help(void)
#define CMDLINE_PARSER_PACKAGE_NAME
the complete program name (used for help and version)
#define CMDLINE_PARSER_PACKAGE
the program name (used for printing errors)
void cmdline_parser_free(struct gengetopt_args_info *args_info)
void cmdline_parser_params_init(struct cmdline_parser_params *params)
struct cmdline_parser_params * cmdline_parser_params_create(void)
The header file for the command line option parser generated by GNU Gengetopt version 2....
The additional parameters to pass to parser functions.
int print_errors
whether getopt_long should print an error message for a bad option (default 1)
int check_required
whether to check that all required options were provided (default 1)
int check_ambiguity
whether to check for options already specified in the option structure gengetopt_args_info (default 0...
int initialize
whether to initialize the option structure gengetopt_args_info (default 1)
int override
whether to override possibly already present options (default 0)
Where the command line options are stored.
char * acct_orig
Account ID original value given at command line.
unsigned int fid_given
Whether fid was given.
unsigned int paymentinquiry_req_given
Whether paymentinquiry-req was given.
unsigned int type_given
Whether type was given.
int type_arg
Account Type 1=checking 2=invest 3=ccard.
const char * payment_req_help
Request to make a payment help description.
char * fid_orig
FI identifier original value given at command line.
char * user_arg
User name.
char * broker_orig
Broker identifier original value given at command line.
char * org_orig
FI org tag original value given at command line.
const char * trid_help
Transaction id help description.
const char * org_help
FI org tag help description.
char * type_orig
Account Type 1=checking 2=invest 3=ccard original value given at command line.
const char * type_help
Account Type 1=checking 2=invest 3=ccard help description.
const char * broker_help
Broker identifier help description.
char * fipid_orig
FI partner identifier (looks up fid, org & url from partner server) original value given at command l...
unsigned inputs_num
unnamed options number
char * past_orig
How far back to look from today (in days) original value given at command line.
const char * past_help
How far back to look from today (in days) help description.
const char * accountinfo_req_help
Request for a list of accounts help description.
const char * user_help
User name help description.
const char * allsupport_help
List all banks which support online banking help description.
char * trid_orig
Transaction id original value given at command line.
const char * url_help
Url to POST the data to (otherwise goes to stdout) help description.
char * bank_arg
IBAN bank identifier.
const char * help_help
Print help and exit help description.
unsigned int statement_req_given
Whether statement-req was given.
char ** inputs
unnamed options (options without names)
char * pass_orig
Password original value given at command line.
const char * paymentinquiry_req_help
Request to inquire about the status of a payment help description.
unsigned int user_given
Whether user was given.
char * fid_arg
FI identifier.
const char * fipid_help
FI partner identifier (looks up fid, org & url from partner server) help description.
unsigned int allsupport_given
Whether allsupport was given.
unsigned int acct_given
Whether acct was given.
unsigned int bank_fipid_given
Whether bank-fipid was given.
unsigned int accountinfo_req_given
Whether accountinfo-req was given.
const char * fid_help
FI identifier help description.
int trid_arg
Transaction id.
char * acct_arg
Account ID.
char * fipid_arg
FI partner identifier (looks up fid, org & url from partner server).
long past_arg
How far back to look from today (in days).
const char * bank_fipid_help
List all fipids for a given bank help description.
unsigned int broker_given
Whether broker was given.
unsigned int bank_list_given
Whether bank-list was given.
const char * pass_help
Password help description.
char * user_orig
User name original value given at command line.
char * org_arg
FI org tag.
char * broker_arg
Broker identifier.
char * url_orig
Url to POST the data to (otherwise goes to stdout) original value given at command line.
unsigned int help_given
Whether help was given.
unsigned int bank_services_given
Whether bank-services was given.
int command_group_counter
Counter for group command.
unsigned int bank_given
Whether bank was given.
const char * acct_help
Account ID help description.
unsigned int version_given
Whether version was given.
unsigned int org_given
Whether org was given.
const char * version_help
Print version and exit help description.
unsigned int url_given
Whether url was given.
unsigned int fipid_given
Whether fipid was given.
char * url_arg
Url to POST the data to (otherwise goes to stdout).
unsigned int past_given
Whether past was given.
const char * bank_list_help
List all known banks help description.
unsigned int pass_given
Whether pass was given.
const char * bank_services_help
List supported services for a given fipid help description.
char * bank_orig
IBAN bank identifier original value given at command line.
unsigned int payment_req_given
Whether payment-req was given.
const char * bank_help
IBAN bank identifier help description.
const char * statement_req_help
Request for a statement help description.
unsigned int trid_given
Whether trid was given.