aboutsummaryrefslogblamecommitdiffstats
path: root/test/test1.c
blob: 5d9cb0c061654282e4f74de57c7b9682053e7e2d (plain) (tree)
1
2
3
4
5
6
7
8
9




                   
                           


                     

                         

  

                             



                         

                      



                          

                      

  

                                            



                             

                           



                       








                            

  
               

                    






                                                                        












                                          
                                                                      







                                               
                                  






                                                       





                                      










                        
#include <stdio.h>
#include <stdlib.h>

#include "../arg.h"

//define ip4 127.0.0.1:8080
s_arg_ip src_ip = 
{
	.port = 8080,
	.ip = 0x7f000001,
	.result = NULL
};

//?
//frequency range from 88:108
s_arg_range freq_range = 
{
	.start = 88,
	.end = 108,
	.step = 100e3,
	.result = NULL
};

s_arg_float ratio_float = 
{
	.val = 0.8,
	.result = NULL
};

char *color_list[] = {"RED","GREEN","BLUE"};

s_arg_list color_name_list = 
{
	.num = 3,
	.default_val = "RED",
	.vals = color_list,
	.result = NULL
};

s_arg_val number_val = 
{
	.ptr = NULL,
	.default_ptr = NULL,
	.result = NULL
};

s_arg_flag flag_help = 
{
	.used = 0,
	.result = NULL
};

//cant be const
def_arg cmd_arg[] = 
{
	ARG_ENTRY("-a",IP,   &src_ip,"test ip address argument"),
	ARG_ENTRY("-b",RANGE,&freq_range,"test integer range argument"),
	ARG_ENTRY("-c",FLOAT,&ratio_float,"test float number"),
	ARG_ENTRY("-d",LIST, &color_name_list,"check list of values"),
	ARG_ENTRY("-e",VAL,  &number_val,"check number values"),
	ARG_ENTRY("-f",FILE, NULL,"check file argument"),
	ARG_ENTRY("-g",FLAG, &flag_help,"check flag argument"),
	{NULL,0,NULL}
};


int main( int argc, char **argv )
{

	int i=0;
	arg_t *cfg = NULL;

	i = 0;
	while ( cmd_arg[i].param != NULL )
	{
		printf("%s - %s\n",cmd_arg[i].param, cmd_arg[i].help);
		i++;
	}

	cfg = arg_load( argc, argv, cmd_arg );

	if (cfg->size == 0)
	{
		printf("No arguments found\n");
		//goto exit_error;
	}

	for (i=0;i<cfg->size;i++)
	{
		printf("TYPE:%d\n", cfg->arg[i]->type);
	}

	//arg_print( cfg );

	if (flag_help.result != NULL)
	{
		printf("Help flag\n");
	}

	arg_free( cfg );

	return 0;

exit_error:
	arg_free( cfg );

	return -1;

}