Snack handler added
[tpg/opendispense2.git] / src / server / main.c
1 /*
2  * OpenDispense 2 
3  * UCC (University [of WA] Computer Club) Electronic Accounting System
4  *
5  * main.c - Initialisation Code
6  *
7  * This file is licenced under the 3-clause BSD Licence. See the file
8  * COPYING for full details.
9  */
10 #include <stdlib.h>
11 #include <stdio.h>
12 #include <string.h>
13 #include <signal.h>
14 #include "common.h"
15
16 // === IMPORTS ===
17 extern void     Init_Cokebank(const char *Argument);    // cokebank.c
18 extern void     Init_Handlers(void);
19 extern void     Load_Itemlist(void);
20 extern void     Server_Start(void);
21 extern int      giServer_Port;
22 extern char*    gsItemListFile;
23 extern char*    gsCoke_SerialPort;
24 extern char*    gsSnack_SerialPort;
25
26 // === GLOBALS ===
27  int    giDebugLevel = 0;
28 char    *gsCokebankPath = "cokebank.db";
29
30 // === CODE ===
31 void sigint_handler()
32 {
33         exit(0);
34 }
35
36 int main(int argc, char *argv[])
37 {
38          int    i;
39         
40         // Parse Arguments
41         for( i = 1; i < argc; i++ )
42         {
43                 char    *arg = argv[i];
44                 if( arg[0] == '-' && arg[1] != '-')
45                 {
46                         switch(arg[1])
47                         {
48                         case 'p':
49                                 giServer_Port = atoi(argv[++i]);
50                                 break;
51                         case 'd':
52                                 giDebugLevel = atoi(argv[++i]);
53                                 break;
54                         default:
55                                 // Usage Error?
56                                 break;
57                         }
58                 }
59                 else if( arg[0] == '-' && arg[1] == '-' ) {
60                         if( strcmp(arg, "--itemsfile") == 0 ) {
61                                 gsItemListFile = argv[++i];
62                         }
63                         else if( strcmp(arg, "--cokeport") == 0 ) {
64                                 gsCoke_SerialPort = argv[++i];
65                         }
66                         else if( strcmp(arg, "--snackport") == 0 ) {
67                                 gsSnack_SerialPort = argv[++i];
68                         }
69                         else {
70                                 // Usage error?
71                         }
72                 }
73                 else {
74                         // Usage Error?
75                 }
76         }
77         
78         signal(SIGINT, sigint_handler);
79         
80         Init_Cokebank(gsCokebankPath);
81
82         Init_Handlers();
83
84         Load_Itemlist();
85         
86         Server_Start();
87         
88
89         return 0;
90 }
91

UCC git Repository :: git.ucc.asn.au