-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathconfig.c
64 lines (59 loc) · 1.59 KB
/
config.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
confType checkConfType(){
FILE *f = fopen(CONFIG_FILE,"r"); //config file
char line[1024];
while( fgets(line, 1024, f) != NULL){
char *part;
if(strstr(line, "db") != NULL){
return db;
}
}
fclose(f);
return file;
}
int readConf(Config *config) {
if(!access("/etc/diskQuota.conf", F_OK)){ //conf doesnt exist try to create it
FILE *f = fopen(CONFIG_FILE,"w+"); //config file
printf("Failed to open config file!\n");
printf("Using default settings.\n");
config->scan_interval = 120;
fputs("scan_interval=120", f);
config->old = 86400;
fputs("old=120",f);
strcpy(config->directory,"/dev/null");
fputs("directory=/dev/null", f);
fclose(f);
return 0;
} else {
confType ct = checkConfType();
if(ct == db){
dbConfig(config,"development.sqlite3");
} else if(ct == file){
FILE *f = fopen("config","r"); //config file
if(f == NULL) {
printf("Failed to open config file!\n");
return 0;
}
char line[1024];
while( fgets(line, 1024, f) != NULL){
char *part;
if(strstr(line, "scan_interval") != NULL){
part = strstr(line, "=");
part++;
config->scan_interval= atol(part);
}
if((part = strstr(line, "old")) != NULL){
part = strstr(line, "=");
part++;
config->old= atol(part);
}
if((part = strstr(line, "directory")) != NULL){
part = strstr(line, "=");
part++;
strcpy(config->directory, part);
}
}
fclose(f);
}
}
return(1);
}