1 /*-
2 * Copyright (c) 2024 Kyle Evans <kevans@FreeBSD.org>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7 #include <err.h>
8 #include <stdio.h>
9
10 #include <libder.h>
11
12 int
main(int argc,char * argv[])13 main(int argc, char *argv[])
14 {
15 FILE *fp;
16 struct libder_ctx *ctx;
17 struct libder_object *root;
18 size_t rootsz;
19 bool first = true;
20
21 if (argc < 2) {
22 fprintf(stderr, "usage: %s file [file...]\n", argv[0]);
23 return (1);
24 }
25
26 ctx = libder_open();
27 libder_set_verbose(ctx, 2);
28 for (int i = 1; i < argc; i++) {
29 fp = fopen(argv[i], "rb");
30 if (fp == NULL) {
31 warn("%s", argv[i]);
32 continue;
33 }
34
35 if (!first)
36 fprintf(stderr, "\n");
37 fprintf(stdout, "[%s]\n", argv[i]);
38 root = libder_read_file(ctx, fp, &rootsz);
39 if (root != NULL) {
40 libder_obj_dump(root, stdout);
41 libder_obj_free(root);
42 root = NULL;
43 }
44
45 first = false;
46 fclose(fp);
47 }
48
49 libder_close(ctx);
50
51 return (0);
52 }
53