cb7ab52913ae8f2ed9bb72c34bb6ed670ff4b0ca
[lms] / lightmediascanner / src / bin / test.c
1 #ifdef HAVE_CONFIG_H
2 #include "config.h"
3 #endif
4
5 #include <lightmediascanner.h>
6 #include <stdio.h>
7 #include <stdlib.h>
8
9 void
10 usage(const char *prgname)
11 {
12     fprintf(stderr,
13             "Usage:\n"
14             "\t%s <commit-interval> <slave-timeout> <db-path> <parser> "
15             "<charset> <scan-path>\n"
16             "\n",
17             prgname);
18 }
19
20 int
21 main(int argc, char *argv[])
22 {
23     char *db_path, *parser_name, *charset, *scan_path;
24     lms_t *lms;
25     lms_plugin_t *parser;
26     int commit_interval, slave_timeout;
27
28     if (argc < 6) {
29         usage(argv[0]);
30         return 1;
31     }
32
33     commit_interval = atoi(argv[1]);
34     slave_timeout = atoi(argv[2]);
35     db_path = argv[3];
36     parser_name = argv[4];
37     charset = argv[5];
38     scan_path = argv[6];
39
40     lms = lms_new(db_path);
41     if (!lms) {
42         fprintf(stderr,
43                 "ERROR: could not create light media scanner for DB \"%s\".\n",
44                 db_path);
45         return -1;
46     }
47
48     lms_set_commit_interval(lms, commit_interval);
49     lms_set_slave_timeout(lms, slave_timeout);
50
51     parser = lms_parser_find_and_add(lms, parser_name);
52     if (!parser) {
53         fprintf(stderr, "ERROR: could not create parser \"%s\".\n",
54                 parser_name);
55         lms_free(lms);
56         return -2;
57     }
58
59     if (lms_charset_add(lms, charset) != 0) {
60         fprintf(stderr, "ERROR: could not add charset '%s'\n", charset);
61         lms_free(lms);
62         return -3;
63     }
64
65     if (lms_check(lms, scan_path) != 0) {
66         fprintf(stderr, "ERROR: checking \"%s\".\n", scan_path);
67         lms_free(lms);
68         return -4;
69     }
70
71     if (lms_process(lms, scan_path) != 0) {
72         fprintf(stderr, "ERROR: processing \"%s\".\n", scan_path);
73         lms_free(lms);
74         return -5;
75     }
76
77     if (lms_free(lms) != 0) {
78         fprintf(stderr, "ERROR: could not close light media scanner.\n");
79         return -6;
80     }
81
82     return 0;
83 }