Mercurial > imgup
annotate imgpasterd.c @ 1:874f6b582761
imgpasterd: fix default path
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 25 Nov 2020 21:44:17 +0100 |
parents | f41e1b48510d |
children |
rev | line source |
---|---|
0 | 1 /* |
2 * imgpasterd.c -- main imgpasterd(8) file | |
3 * | |
4 * Copyright (c) 2020 David Demelier <markand@malikania.fr> | |
5 * | |
6 * Permission to use, copy, modify, and/or distribute this software for any | |
7 * purpose with or without fee is hereby granted, provided that the above | |
8 * copyright notice and this permission notice appear in all copies. | |
9 * | |
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
17 */ | |
18 | |
19 #include <stdio.h> | |
20 #include <stdlib.h> | |
21 #include <stdnoreturn.h> | |
22 #include <time.h> | |
23 #include <unistd.h> | |
24 | |
25 #include "config.h" | |
26 #include "database.h" | |
27 #include "http.h" | |
28 #include "log.h" | |
29 #include "util.h" | |
30 | |
31 static void | |
32 defaults(void) | |
33 { | |
34 snprintf(config.databasepath, sizeof (config.databasepath), | |
1
874f6b582761
imgpasterd: fix default path
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
35 "%s", VARDIR "/imgpaster/imgpaster.db"); |
0 | 36 } |
37 | |
38 static void | |
39 init(void) | |
40 { | |
41 srand(time(NULL)); | |
42 log_open(); | |
43 | |
44 if (!config.databasepath[0]) | |
45 die("abort: no database specified\n"); | |
46 if (!database_open(config.databasepath)) | |
47 die("abort: could not open database\n"); | |
48 } | |
49 | |
50 static void | |
51 quit(void) | |
52 { | |
53 database_finish(); | |
54 log_finish(); | |
55 } | |
56 | |
57 static noreturn void | |
58 usage(void) | |
59 { | |
60 fprintf(stderr, "usage: paster [-fqv] [-d database-path] [-t theme-directory]\n"); | |
61 exit(1); | |
62 } | |
63 | |
64 int | |
65 main(int argc, char **argv) | |
66 { | |
67 const char *value; | |
68 int opt; | |
69 void (*run)(void) = &(http_cgi_run); | |
70 | |
71 defaults(); | |
72 | |
73 /* Seek environment variables before options. */ | |
74 if ((value = getenv("IMGPASTERD_DATABASE_PATH"))) | |
75 snprintf(config.databasepath, sizeof (config.databasepath), "%s", value); | |
76 if ((value = getenv("IMGPASTERD_THEME_DIR"))) | |
77 snprintf(config.themedir, sizeof (config.themedir), "%s", value); | |
78 if ((value = getenv("IMGPASTERD_VERBOSITY"))) | |
79 config.verbosity = atoi(value); | |
80 | |
81 while ((opt = getopt(argc, argv, "d:ft:qv")) != -1) { | |
82 switch (opt) { | |
83 case 'd': | |
84 snprintf(config.databasepath, sizeof (config.databasepath), "%s", optarg); | |
85 break; | |
86 case 't': | |
87 snprintf(config.themedir, sizeof (config.themedir), "%s", optarg); | |
88 break; | |
89 case 'f': | |
90 run = &(http_fcgi_run); | |
91 break; | |
92 case 'v': | |
93 config.verbosity++; | |
94 break; | |
95 case 'q': | |
96 config.verbosity = 0; | |
97 break; | |
98 default: | |
99 usage(); | |
100 break; | |
101 } | |
102 } | |
103 | |
104 init(); | |
105 run(); | |
106 quit(); | |
107 } |