Subversion Repositories RepoView

Rev

Rev 8 | Rev 27 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 nishi 1
/* $Id: check.c 10 2024-08-21 02:13:48Z nishi $ */
2
 
3
#include "config.h"
4
 
5
#include <stdio.h>
6
 
3 nishi 7
int check_db(void) {
1 nishi 8
	int counter = 0;
9
	const char* db = "";
10
#ifdef USE_SQLITE
11
	counter++;
12
	db = "SQLite";
13
#endif
14
#ifdef USE_GDBM
15
	counter++;
16
	db = "GDBM";
17
#endif
18
#ifdef USE_NDBM
19
	counter++;
20
	db = "NDBM";
21
#endif
3 nishi 22
	if(counter > 1) {
1 nishi 23
		fprintf(stderr, "You cannot use multiple database types at once.\n");
24
		return 1;
3 nishi 25
	} else if(counter == 0) {
1 nishi 26
		fprintf(stderr, "You must select a database type.\n");
27
		return 1;
3 nishi 28
	} else {
1 nishi 29
		printf("Database type is %s\n", db);
30
	}
31
	return 0;
32
}
33
 
3 nishi 34
int check_theme(void) {
1 nishi 35
	int counter = 0;
36
	const char* theme = "";
37
#ifdef USE_MODERN
38
	counter++;
39
	theme = "Modern";
40
#endif
41
#ifdef USE_OPTIMIZED
42
	counter++;
43
	theme = "Optimized";
44
#endif
3 nishi 45
	if(counter > 1) {
1 nishi 46
		fprintf(stderr, "You cannot use multiple themes at once.\n");
47
		return 1;
3 nishi 48
	} else if(counter == 0) {
1 nishi 49
		fprintf(stderr, "You must select a theme.\n");
50
		return 1;
3 nishi 51
	} else {
1 nishi 52
		printf("Theme is %s\n", theme);
53
	}
54
	return 0;
55
}
56
 
3 nishi 57
int check_auth(void) {
1 nishi 58
	int counter = 0;
59
	const char* method = "";
60
#ifdef USE_COOKIE
61
	counter++;
62
	method = "Cookie";
63
#endif
3 nishi 64
	if(counter > 1) {
1 nishi 65
		fprintf(stderr, "You cannot use multiple authentication methods at once.\n");
66
		return 1;
3 nishi 67
	} else if(counter == 0) {
1 nishi 68
		fprintf(stderr, "You must select an authentication method.\n");
69
		return 1;
3 nishi 70
	} else {
1 nishi 71
		printf("Authentication method is %s\n", method);
72
	}
73
	return 0;
74
}
75
 
8 nishi 76
int check_files(void) {
77
	int st = 0;
78
#ifndef APACHE_PASSWD
79
	fprintf(stderr, "Apache htpasswd file is not set.\n");
80
	st = 1;
81
#endif
82
#ifndef APACHE_AUTHZ
83
	fprintf(stderr, "Apache authz file is not set.\n");
84
	st = 1;
85
#endif
10 nishi 86
#ifndef REPO_USER_DELIM
87
	fprintf(stderr, "Repo/User delimeter is not set.\n");
88
	st = 1;
89
#endif
8 nishi 90
	return st;
91
}
92
 
3 nishi 93
int main() {
1 nishi 94
	int st;
95
	st = check_db();
96
	if(st != 0) goto fail;
97
	st = check_auth();
98
	if(st != 0) goto fail;
99
	st = check_theme();
100
	if(st != 0) goto fail;
8 nishi 101
	st = check_files();
102
	if(st != 0) goto fail;
1 nishi 103
	printf("Config validation successful.\n");
104
	return 0;
105
fail:
106
	fprintf(stderr, "Config validation failure.\n");
107
	return st;
108
}