| /* |
| * Copyright 2001-2004 Brandon Long |
| * All Rights Reserved. |
| * |
| * ClearSilver Templating System |
| * |
| * This code is made available under the terms of the ClearSilver License. |
| * http://www.clearsilver.net/license.hdf |
| * |
| */ |
| |
| #include <stdio.h> |
| #include <stdlib.h> |
| #include <unistd.h> |
| |
| #include "cs.h" |
| #include "util/neo_misc.h" |
| #include "util/neo_hdf.h" |
| |
| static NEOERR *output (void *ctx, char *s) |
| { |
| printf ("%s", s); |
| return STATUS_OK; |
| } |
| |
| int main (int argc, char *argv[]) |
| { |
| NEOERR *err; |
| CSPARSE *parse; |
| HDF *hdf; |
| int verbose = 0; |
| char *hdf_file, *cs_file; |
| char c; |
| |
| extern char *optarg; |
| |
| err = hdf_init(&hdf); |
| if (err != STATUS_OK) |
| { |
| nerr_log_error(err); |
| return -1; |
| } |
| |
| err = cs_init (&parse, hdf); |
| if (err != STATUS_OK) { |
| nerr_log_error(err); |
| return -1; |
| } |
| |
| while ((c = getopt(argc, argv, "Hvh:c:")) != EOF ) |
| |
| switch (c) { |
| case 'h': |
| hdf_file=optarg; |
| err = hdf_read_file(hdf, hdf_file); |
| if (err != STATUS_OK) { |
| nerr_log_error(err); |
| return -1; |
| } |
| break; |
| case 'c': |
| cs_file=optarg; |
| if ( verbose ) |
| printf ("Parsing %s\n", cs_file); |
| |
| err = cs_parse_file (parse, cs_file); |
| if (err != STATUS_OK) { |
| err = nerr_pass(err); |
| nerr_log_error(err); |
| return -1; |
| } |
| break; |
| case 'v': |
| verbose=1; |
| break; |
| case 'H': |
| fprintf(stderr, "Usage: %s [-v] [-h <file.hdf>] [-c <file.cs>]\n", argv[0]); |
| fprintf(stderr, " -h <file.hdf> load hdf file file.hdf (multiple allowed)\n"); |
| fprintf(stderr, " -c <file.cs> load cs file file.cs (multiple allowed)\n"); |
| fprintf(stderr, " -v verbose output\n"); |
| return -1; |
| break; |
| } |
| |
| |
| err = cs_render(parse, NULL, output); |
| if (err != STATUS_OK) { |
| err = nerr_pass(err); |
| nerr_log_error(err); |
| return -1; |
| } |
| |
| if (verbose) { |
| printf ("\n-----------------------\nCS DUMP\n"); |
| err = cs_dump(parse, NULL, output); |
| } |
| |
| cs_destroy (&parse); |
| |
| if (verbose) { |
| printf ("\n-----------------------\nHDF DUMP\n"); |
| hdf_dump (hdf, NULL); |
| } |
| |
| return 0; |
| } |