00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "korebot.h"
00012
00013 static int kb_init_done = 0;
00014
00015 struct option long_opts[] = {
00016 { "debug" , 1 , 0 , 'd' } ,
00017 { "version" , 0 , 0 , 'v' } ,
00018 { NULL , 0 , 0 , 0 }
00019 };
00020
00021
00022 char short_opts[] = "d:v";
00023
00024
00028 int kb_init( int argc , char * argv[] )
00029 {
00030 int opt, rc;
00031
00032 if ( kb_init_done == 0 ) {
00033
00034 for (;;) {
00035 opt = getopt_long( argc , argv , short_opts , long_opts , NULL );
00036 if ( opt == -1 )
00037 break;
00038
00039 switch( opt ) {
00040
00041 case 'd':
00042 kb_set_debug_level(atoi(optarg));
00043 break;
00044
00045
00046 case 'v':
00047 kb_msg( "libkorebot version %u.%u [%s]\n" ,
00048 KB_VERSION , KB_REVISION , __DATE__ );
00049 break;
00050
00051 default:
00052 break;
00053 }
00054 }
00055
00056 if ((rc = kb_config_init( argc, argv )) < 0 )
00057 return rc;
00058
00059 if ((rc = knet_init( argc , argv )) < 0)
00060 return rc;
00061
00062 atexit( kb_exit );
00063
00064 kb_init_done = 1;
00065 }
00066
00067 return 1;
00068 }
00069
00070
00077 void kb_exit(void)
00078 {
00079 if ( kb_init_done ) {
00080 knet_exit();
00081 kb_config_exit();
00082 kb_init_done = 0;
00083 }
00084 }