%(c_comment template "header_gpl")

#include <getopt.h>
#include <stdio.h>
#include <stdlib.h>

extern char *usage_%(PROJ_NAME:FIXME);

/* ============================ settings_t ================================= */
typedef struct settings_t {

} settings_t;

/* ============================ usage () ==================================== */
void usage(const int exitcode, const char *error, const char *more)
{
    fprintf(stderr, "%s\n", usage_%(PROJ_NAME:FIXME));
    if (error)
	fprintf(stderr, "%s: %s.\n\n", error, more);
    exit(exitcode);
}

/* ============================ set_defaults () ============================= */
void set_defaults(settings_t * settings)
{
}

/* ============================ parse_args () =============================== */
void parse_args(int argc, char *argv[], settings_t * settings)
{
    int c;
    int opt_index = 0;
    struct option opts[] = {
	{"help", 0, 0, 'h'},
	{0, 0, 0, 0}
    };
    while ((c = getopt_long(argc, argv, "hflgt:s:y:p:", opts, &opt_index))
	   >= 0) {
	switch (c) {
	case 'h':
	    usage(EXIT_SUCCESS, NULL, NULL);
	default:
	    usage(EXIT_FAILURE, NULL, NULL);
	}
    }
}

/* ============================ main () ===================================== */
int main(int argc, char *argv[], char *env[])
{
    settings_t settings;
    set_defaults (&settings);
    parse_args(argc, argv, &settings);

    exit(EXIT_SUCCESS);
}
