utilbox: code cleanup
This commit is contained in:
parent
ac912820d4
commit
91dc0f2f87
|
@ -31,14 +31,27 @@
|
||||||
/* utilbox */
|
/* utilbox */
|
||||||
/* private */
|
/* private */
|
||||||
/* prototypes */
|
/* prototypes */
|
||||||
static int _error(char const * message, int ret);
|
static int _utilbox(char const * name, int argc, char * argv[]);
|
||||||
static int _list(Call * calls);
|
static int _utilbox_error(char const * message, int ret);
|
||||||
static int _usage(void);
|
static int _utilbox_list(Call * calls);
|
||||||
|
static int _utilbox_usage(void);
|
||||||
|
|
||||||
|
|
||||||
/* functions */
|
/* functions */
|
||||||
/* error */
|
/* utilbox */
|
||||||
static int _error(char const * message, int ret)
|
static int _utilbox(char const * name, int argc, char * argv[])
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
for(i = 0; calls[i].name != NULL; i++)
|
||||||
|
if(strcmp(calls[i].name, name) == 0)
|
||||||
|
return calls[i].call(argc, argv);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* utilbox_error */
|
||||||
|
static int _utilbox_error(char const * message, int ret)
|
||||||
{
|
{
|
||||||
fputs(PROGNAME ": ", stderr);
|
fputs(PROGNAME ": ", stderr);
|
||||||
perror(message);
|
perror(message);
|
||||||
|
@ -46,8 +59,8 @@ static int _error(char const * message, int ret)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* list */
|
/* utilbox_list */
|
||||||
static int _list(Call * calls)
|
static int _utilbox_list(Call * calls)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
|
@ -57,8 +70,8 @@ static int _list(Call * calls)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* usage */
|
/* utilbox_usage */
|
||||||
static int _usage(void)
|
static int _utilbox_usage(void)
|
||||||
{
|
{
|
||||||
fputs("Usage: " PROGNAME " program [arguments...]\n"
|
fputs("Usage: " PROGNAME " program [arguments...]\n"
|
||||||
" " PROGNAME " -l\n"
|
" " PROGNAME " -l\n"
|
||||||
|
@ -72,34 +85,30 @@ static int _usage(void)
|
||||||
/* main */
|
/* main */
|
||||||
int main(int argc, char * argv[])
|
int main(int argc, char * argv[])
|
||||||
{
|
{
|
||||||
|
int ret;
|
||||||
char * p;
|
char * p;
|
||||||
char const * q;
|
char const * q;
|
||||||
size_t i;
|
|
||||||
int o;
|
int o;
|
||||||
|
|
||||||
if((p = strdup(argv[0])) == NULL)
|
if((p = strdup(argv[0])) == NULL)
|
||||||
return _error(NULL, 2);
|
return _utilbox_error(NULL, 2);
|
||||||
q = basename(p);
|
q = basename(p);
|
||||||
for(i = 0; calls[i].name != NULL; i++)
|
ret = _utilbox(q, argc, argv);
|
||||||
if(strcmp(calls[i].name, q) == 0)
|
|
||||||
{
|
|
||||||
free(p);
|
|
||||||
return calls[i].call(argc, argv);
|
|
||||||
}
|
|
||||||
free(p);
|
free(p);
|
||||||
|
if(ret >= 0)
|
||||||
|
return ret;
|
||||||
while((o = getopt(argc, argv, "l")) != -1)
|
while((o = getopt(argc, argv, "l")) != -1)
|
||||||
switch(o)
|
switch(o)
|
||||||
{
|
{
|
||||||
case 'l':
|
case 'l':
|
||||||
return _list(calls);
|
return _utilbox_list(calls);
|
||||||
default:
|
default:
|
||||||
return _usage();
|
return _utilbox_usage();
|
||||||
}
|
}
|
||||||
if(optind == argc)
|
if(optind == argc)
|
||||||
return _usage();
|
return _utilbox_usage();
|
||||||
for(i = 0; calls[i].name != NULL; i++)
|
if((ret = _utilbox(argv[optind], argc - optind, &argv[optind])) >= 0)
|
||||||
if(strcmp(calls[i].name, argv[optind]) == 0)
|
return ret;
|
||||||
return calls[i].call(argc - optind, &argv[optind]);
|
|
||||||
fprintf(stderr, "%s: %s: command not found\n", PROGNAME, argv[optind]);
|
fprintf(stderr, "%s: %s: command not found\n", PROGNAME, argv[optind]);
|
||||||
return 127;
|
return 127;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user