Implement utilbox as an equivalent to busybox
This commit is contained in:
parent
5db44191b0
commit
d4eaaf189c
38
tools/Makefile
Normal file
38
tools/Makefile
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
TARGETS = utilbox
|
||||||
|
PREFIX = /usr/local
|
||||||
|
DESTDIR =
|
||||||
|
BINDIR = $(PREFIX)/bin
|
||||||
|
CC = cc
|
||||||
|
CPPFLAGSF=
|
||||||
|
CPPFLAGS=
|
||||||
|
CFLAGSF = -W
|
||||||
|
CFLAGS = -Wall -g -O2 -pedantic
|
||||||
|
RM = rm -f
|
||||||
|
LN = ln -f
|
||||||
|
MKDIR = mkdir -p
|
||||||
|
INSTALL = install
|
||||||
|
|
||||||
|
|
||||||
|
all: $(TARGETS)
|
||||||
|
|
||||||
|
utilbox_OBJS = utilbox.o
|
||||||
|
utilbox_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
|
||||||
|
utilbox_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)
|
||||||
|
|
||||||
|
utilbox: $(utilbox_OBJS) utils.c
|
||||||
|
$(CC) -o utilbox $(utilbox_OBJS) $(utilbox_LDFLAGS)
|
||||||
|
|
||||||
|
utilbox.o: utilbox.c
|
||||||
|
$(CC) $(utilbox_CFLAGS) -c utilbox.c
|
||||||
|
|
||||||
|
clean:
|
||||||
|
$(RM) $(utilbox_OBJS)
|
||||||
|
|
||||||
|
distclean: clean
|
||||||
|
$(RM) $(TARGETS)
|
||||||
|
|
||||||
|
install: all
|
||||||
|
|
||||||
|
uninstall:
|
||||||
|
|
||||||
|
.PHONY: all clean distclean install uninstall
|
9
tools/project.conf
Normal file
9
tools/project.conf
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
targets=utilbox
|
||||||
|
cflags_force=-W
|
||||||
|
cflags=-Wall -g -O2 -pedantic
|
||||||
|
dist=Makefile,utils.sh,utils.c
|
||||||
|
|
||||||
|
[utilbox]
|
||||||
|
type=binary
|
||||||
|
sources=utilbox.c
|
||||||
|
depends=utils.c
|
109
tools/utilbox.c
Normal file
109
tools/utilbox.c
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
/* $Id$ */
|
||||||
|
/* Copyright (c) 2009 Pierre Pronchery <khorben@defora.org> */
|
||||||
|
/* This file is part of DeforaOS Unix utils */
|
||||||
|
/* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, version 3 of the License.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <libgen.h>
|
||||||
|
|
||||||
|
|
||||||
|
/* utilbox */
|
||||||
|
/* private */
|
||||||
|
/* types */
|
||||||
|
typedef struct _Call
|
||||||
|
{
|
||||||
|
char const * name;
|
||||||
|
int (*call)(int argc, char * argv[]);
|
||||||
|
} Call;
|
||||||
|
|
||||||
|
|
||||||
|
/* variables */
|
||||||
|
#include "utils.c"
|
||||||
|
|
||||||
|
|
||||||
|
/* prototypes */
|
||||||
|
static int _error(char const * message, int ret);
|
||||||
|
static int _list(Call * calls);
|
||||||
|
static int _usage(void);
|
||||||
|
|
||||||
|
|
||||||
|
/* functions */
|
||||||
|
/* error */
|
||||||
|
static int _error(char const * message, int ret)
|
||||||
|
{
|
||||||
|
fputs("utilbox: ", stderr);
|
||||||
|
perror(message);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* list */
|
||||||
|
static int _list(Call * calls)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
for(i = 0; calls[i].name != NULL; i++)
|
||||||
|
printf("%s\n", calls[i].name);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* usage */
|
||||||
|
static int _usage(void)
|
||||||
|
{
|
||||||
|
fputs("Usage: utilbox program [arguments...]\n"
|
||||||
|
" utilbox -l\n"
|
||||||
|
" -l List available programs\n", stderr);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* public */
|
||||||
|
/* functions */
|
||||||
|
/* main */
|
||||||
|
int main(int argc, char * argv[])
|
||||||
|
{
|
||||||
|
char * p;
|
||||||
|
char const * q;
|
||||||
|
size_t i;
|
||||||
|
int o;
|
||||||
|
|
||||||
|
if((p = strdup(argv[0])) == NULL)
|
||||||
|
return _error(NULL, 2);
|
||||||
|
q = basename(p);
|
||||||
|
for(i = 0; _calls[i].name != NULL; i++)
|
||||||
|
if(strcmp(_calls[i].name, q) == 0)
|
||||||
|
{
|
||||||
|
free(p);
|
||||||
|
return _calls[i].call(argc, argv);
|
||||||
|
}
|
||||||
|
free(p);
|
||||||
|
while((o = getopt(argc, argv, "l")) != -1)
|
||||||
|
switch(o)
|
||||||
|
{
|
||||||
|
case 'l':
|
||||||
|
return _list(_calls);
|
||||||
|
default:
|
||||||
|
return _usage();
|
||||||
|
}
|
||||||
|
if(optind == argc)
|
||||||
|
return _usage();
|
||||||
|
for(i = 0; _calls[i].name != NULL; i++)
|
||||||
|
if(strcmp(_calls[i].name, argv[optind]) == 0)
|
||||||
|
return _calls[i].call(argc - optind, &argv[optind]);
|
||||||
|
return 0;
|
||||||
|
}
|
759
tools/utils.c
Normal file
759
tools/utils.c
Normal file
|
@ -0,0 +1,759 @@
|
||||||
|
/* $Id$ */
|
||||||
|
/* Copyright (c) 2009 Pierre Pronchery <khorben@defora.org> */
|
||||||
|
/* This file is part of DeforaOS Unix utils */
|
||||||
|
/* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, version 3 of the License.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* basename.c */
|
||||||
|
#define main _basename_main
|
||||||
|
#define _usage _basename_usage
|
||||||
|
#define _Prefs _basename_Prefs
|
||||||
|
#define Prefs basename_Prefs
|
||||||
|
#define _prefs_parse _basename_prefs_parse
|
||||||
|
#define _basename __basename
|
||||||
|
#include "../src/basename.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _basename
|
||||||
|
|
||||||
|
/* cat.c */
|
||||||
|
#define main _cat_main
|
||||||
|
#define _usage _cat_usage
|
||||||
|
#define _Prefs _cat_Prefs
|
||||||
|
#define Prefs cat_Prefs
|
||||||
|
#define _prefs_parse _cat_prefs_parse
|
||||||
|
#define _cat __cat
|
||||||
|
#include "../src/cat.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _cat
|
||||||
|
|
||||||
|
/* chgrp.c */
|
||||||
|
#define main _chgrp_main
|
||||||
|
#define _usage _chgrp_usage
|
||||||
|
#define _Prefs _chgrp_Prefs
|
||||||
|
#define Prefs chgrp_Prefs
|
||||||
|
#define _prefs_parse _chgrp_prefs_parse
|
||||||
|
#define _chgrp __chgrp
|
||||||
|
#include "../src/chgrp.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _chgrp
|
||||||
|
|
||||||
|
/* chmod.c */
|
||||||
|
#define main _chmod_main
|
||||||
|
#define _usage _chmod_usage
|
||||||
|
#define _Prefs _chmod_Prefs
|
||||||
|
#define Prefs chmod_Prefs
|
||||||
|
#define _prefs_parse _chmod_prefs_parse
|
||||||
|
#define _chmod __chmod
|
||||||
|
#include "../src/chmod.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _chmod
|
||||||
|
|
||||||
|
/* chown.c */
|
||||||
|
#define main _chown_main
|
||||||
|
#define _usage _chown_usage
|
||||||
|
#define _Prefs _chown_Prefs
|
||||||
|
#define Prefs chown_Prefs
|
||||||
|
#define _prefs_parse _chown_prefs_parse
|
||||||
|
#define _chown __chown
|
||||||
|
#include "../src/chown.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _chown
|
||||||
|
|
||||||
|
/* cksum.c */
|
||||||
|
#define main _cksum_main
|
||||||
|
#define _usage _cksum_usage
|
||||||
|
#define _Prefs _cksum_Prefs
|
||||||
|
#define Prefs cksum_Prefs
|
||||||
|
#define _prefs_parse _cksum_prefs_parse
|
||||||
|
#define _cksum __cksum
|
||||||
|
#include "../src/cksum.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _cksum
|
||||||
|
|
||||||
|
/* cmp.c */
|
||||||
|
#define main _cmp_main
|
||||||
|
#define _usage _cmp_usage
|
||||||
|
#define _Prefs _cmp_Prefs
|
||||||
|
#define Prefs cmp_Prefs
|
||||||
|
#define _prefs_parse _cmp_prefs_parse
|
||||||
|
#define _cmp __cmp
|
||||||
|
#include "../src/cmp.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _cmp
|
||||||
|
|
||||||
|
/* cp.c */
|
||||||
|
#define main _cp_main
|
||||||
|
#define _usage _cp_usage
|
||||||
|
#define _Prefs _cp_Prefs
|
||||||
|
#define Prefs cp_Prefs
|
||||||
|
#define _prefs_parse _cp_prefs_parse
|
||||||
|
#define _cp __cp
|
||||||
|
#include "../src/cp.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _cp
|
||||||
|
|
||||||
|
/* df.c */
|
||||||
|
#define main _df_main
|
||||||
|
#define _usage _df_usage
|
||||||
|
#define _Prefs _df_Prefs
|
||||||
|
#define Prefs df_Prefs
|
||||||
|
#define _prefs_parse _df_prefs_parse
|
||||||
|
#define _df __df
|
||||||
|
#include "../src/df.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _df
|
||||||
|
|
||||||
|
/* dirname.c */
|
||||||
|
#define main _dirname_main
|
||||||
|
#define _usage _dirname_usage
|
||||||
|
#define _Prefs _dirname_Prefs
|
||||||
|
#define Prefs dirname_Prefs
|
||||||
|
#define _prefs_parse _dirname_prefs_parse
|
||||||
|
#define _dirname __dirname
|
||||||
|
#include "../src/dirname.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _dirname
|
||||||
|
|
||||||
|
/* du.c */
|
||||||
|
#define main _du_main
|
||||||
|
#define _usage _du_usage
|
||||||
|
#define _Prefs _du_Prefs
|
||||||
|
#define Prefs du_Prefs
|
||||||
|
#define _prefs_parse _du_prefs_parse
|
||||||
|
#define _du __du
|
||||||
|
#include "../src/du.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _du
|
||||||
|
|
||||||
|
/* echo.c */
|
||||||
|
#define main _echo_main
|
||||||
|
#define _usage _echo_usage
|
||||||
|
#define _Prefs _echo_Prefs
|
||||||
|
#define Prefs echo_Prefs
|
||||||
|
#define _prefs_parse _echo_prefs_parse
|
||||||
|
#define _echo __echo
|
||||||
|
#include "../src/echo.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _echo
|
||||||
|
|
||||||
|
/* false.c */
|
||||||
|
#define main _false_main
|
||||||
|
#define _usage _false_usage
|
||||||
|
#define _Prefs _false_Prefs
|
||||||
|
#define Prefs false_Prefs
|
||||||
|
#define _prefs_parse _false_prefs_parse
|
||||||
|
#define _false __false
|
||||||
|
#include "../src/false.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _false
|
||||||
|
|
||||||
|
/* file.c */
|
||||||
|
#define main _file_main
|
||||||
|
#define _usage _file_usage
|
||||||
|
#define _Prefs _file_Prefs
|
||||||
|
#define Prefs file_Prefs
|
||||||
|
#define _prefs_parse _file_prefs_parse
|
||||||
|
#define _file __file
|
||||||
|
#include "../src/file.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _file
|
||||||
|
|
||||||
|
/* find.c */
|
||||||
|
#define main _find_main
|
||||||
|
#define _usage _find_usage
|
||||||
|
#define _Prefs _find_Prefs
|
||||||
|
#define Prefs find_Prefs
|
||||||
|
#define _prefs_parse _find_prefs_parse
|
||||||
|
#define _find __find
|
||||||
|
#include "../src/find.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _find
|
||||||
|
|
||||||
|
/* head.c */
|
||||||
|
#define main _head_main
|
||||||
|
#define _usage _head_usage
|
||||||
|
#define _Prefs _head_Prefs
|
||||||
|
#define Prefs head_Prefs
|
||||||
|
#define _prefs_parse _head_prefs_parse
|
||||||
|
#define _head __head
|
||||||
|
#include "../src/head.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _head
|
||||||
|
|
||||||
|
/* id.c */
|
||||||
|
#define main _id_main
|
||||||
|
#define _usage _id_usage
|
||||||
|
#define _Prefs _id_Prefs
|
||||||
|
#define Prefs id_Prefs
|
||||||
|
#define _prefs_parse _id_prefs_parse
|
||||||
|
#define _id __id
|
||||||
|
#include "../src/id.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _id
|
||||||
|
|
||||||
|
/* kill.c */
|
||||||
|
#define main _kill_main
|
||||||
|
#define _usage _kill_usage
|
||||||
|
#define _Prefs _kill_Prefs
|
||||||
|
#define Prefs kill_Prefs
|
||||||
|
#define _prefs_parse _kill_prefs_parse
|
||||||
|
#define _kill __kill
|
||||||
|
#include "../src/kill.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _kill
|
||||||
|
|
||||||
|
/* link.c */
|
||||||
|
#define main _link_main
|
||||||
|
#define _usage _link_usage
|
||||||
|
#define _Prefs _link_Prefs
|
||||||
|
#define Prefs link_Prefs
|
||||||
|
#define _prefs_parse _link_prefs_parse
|
||||||
|
#define _link __link
|
||||||
|
#include "../src/link.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _link
|
||||||
|
|
||||||
|
/* ln.c */
|
||||||
|
#define main _ln_main
|
||||||
|
#define _usage _ln_usage
|
||||||
|
#define _Prefs _ln_Prefs
|
||||||
|
#define Prefs ln_Prefs
|
||||||
|
#define _prefs_parse _ln_prefs_parse
|
||||||
|
#define _ln __ln
|
||||||
|
#include "../src/ln.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _ln
|
||||||
|
|
||||||
|
/* locale.c */
|
||||||
|
#define main _locale_main
|
||||||
|
#define _usage _locale_usage
|
||||||
|
#define _Prefs _locale_Prefs
|
||||||
|
#define Prefs locale_Prefs
|
||||||
|
#define _prefs_parse _locale_prefs_parse
|
||||||
|
#define _locale __locale
|
||||||
|
#include "../src/locale.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _locale
|
||||||
|
|
||||||
|
/* logname.c */
|
||||||
|
#define main _logname_main
|
||||||
|
#define _usage _logname_usage
|
||||||
|
#define _Prefs _logname_Prefs
|
||||||
|
#define Prefs logname_Prefs
|
||||||
|
#define _prefs_parse _logname_prefs_parse
|
||||||
|
#define _logname __logname
|
||||||
|
#include "../src/logname.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _logname
|
||||||
|
|
||||||
|
/* ls.c */
|
||||||
|
#define main _ls_main
|
||||||
|
#define _usage _ls_usage
|
||||||
|
#define _Prefs _ls_Prefs
|
||||||
|
#define Prefs ls_Prefs
|
||||||
|
#define _prefs_parse _ls_prefs_parse
|
||||||
|
#define _ls __ls
|
||||||
|
#include "../src/ls.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _ls
|
||||||
|
|
||||||
|
/* mkdir.c */
|
||||||
|
#define main _mkdir_main
|
||||||
|
#define _usage _mkdir_usage
|
||||||
|
#define _Prefs _mkdir_Prefs
|
||||||
|
#define Prefs mkdir_Prefs
|
||||||
|
#define _prefs_parse _mkdir_prefs_parse
|
||||||
|
#define _mkdir __mkdir
|
||||||
|
#include "../src/mkdir.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _mkdir
|
||||||
|
|
||||||
|
/* mkfifo.c */
|
||||||
|
#define main _mkfifo_main
|
||||||
|
#define _usage _mkfifo_usage
|
||||||
|
#define _Prefs _mkfifo_Prefs
|
||||||
|
#define Prefs mkfifo_Prefs
|
||||||
|
#define _prefs_parse _mkfifo_prefs_parse
|
||||||
|
#define _mkfifo __mkfifo
|
||||||
|
#include "../src/mkfifo.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _mkfifo
|
||||||
|
|
||||||
|
/* mv.c */
|
||||||
|
#define main _mv_main
|
||||||
|
#define _usage _mv_usage
|
||||||
|
#define _Prefs _mv_Prefs
|
||||||
|
#define Prefs mv_Prefs
|
||||||
|
#define _prefs_parse _mv_prefs_parse
|
||||||
|
#define _mv __mv
|
||||||
|
#include "../src/mv.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _mv
|
||||||
|
|
||||||
|
/* nice.c */
|
||||||
|
#define main _nice_main
|
||||||
|
#define _usage _nice_usage
|
||||||
|
#define _Prefs _nice_Prefs
|
||||||
|
#define Prefs nice_Prefs
|
||||||
|
#define _prefs_parse _nice_prefs_parse
|
||||||
|
#define _nice __nice
|
||||||
|
#include "../src/nice.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _nice
|
||||||
|
|
||||||
|
/* pr.c */
|
||||||
|
#define main _pr_main
|
||||||
|
#define _usage _pr_usage
|
||||||
|
#define _Prefs _pr_Prefs
|
||||||
|
#define Prefs pr_Prefs
|
||||||
|
#define _prefs_parse _pr_prefs_parse
|
||||||
|
#define _pr __pr
|
||||||
|
#include "../src/pr.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _pr
|
||||||
|
|
||||||
|
/* printf.c */
|
||||||
|
#define main _printf_main
|
||||||
|
#define _usage _printf_usage
|
||||||
|
#define _Prefs _printf_Prefs
|
||||||
|
#define Prefs printf_Prefs
|
||||||
|
#define _prefs_parse _printf_prefs_parse
|
||||||
|
#define _printf __printf
|
||||||
|
#include "../src/printf.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _printf
|
||||||
|
|
||||||
|
/* pwd.c */
|
||||||
|
#define main _pwd_main
|
||||||
|
#define _usage _pwd_usage
|
||||||
|
#define _Prefs _pwd_Prefs
|
||||||
|
#define Prefs pwd_Prefs
|
||||||
|
#define _prefs_parse _pwd_prefs_parse
|
||||||
|
#define _pwd __pwd
|
||||||
|
#include "../src/pwd.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _pwd
|
||||||
|
|
||||||
|
/* renice.c */
|
||||||
|
#define main _renice_main
|
||||||
|
#define _usage _renice_usage
|
||||||
|
#define _Prefs _renice_Prefs
|
||||||
|
#define Prefs renice_Prefs
|
||||||
|
#define _prefs_parse _renice_prefs_parse
|
||||||
|
#define _renice __renice
|
||||||
|
#include "../src/renice.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _renice
|
||||||
|
|
||||||
|
/* rm.c */
|
||||||
|
#define main _rm_main
|
||||||
|
#define _usage _rm_usage
|
||||||
|
#define _Prefs _rm_Prefs
|
||||||
|
#define Prefs rm_Prefs
|
||||||
|
#define _prefs_parse _rm_prefs_parse
|
||||||
|
#define _rm __rm
|
||||||
|
#include "../src/rm.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _rm
|
||||||
|
|
||||||
|
/* rmdir.c */
|
||||||
|
#define main _rmdir_main
|
||||||
|
#define _usage _rmdir_usage
|
||||||
|
#define _Prefs _rmdir_Prefs
|
||||||
|
#define Prefs rmdir_Prefs
|
||||||
|
#define _prefs_parse _rmdir_prefs_parse
|
||||||
|
#define _rmdir __rmdir
|
||||||
|
#include "../src/rmdir.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _rmdir
|
||||||
|
|
||||||
|
/* sleep.c */
|
||||||
|
#define main _sleep_main
|
||||||
|
#define _usage _sleep_usage
|
||||||
|
#define _Prefs _sleep_Prefs
|
||||||
|
#define Prefs sleep_Prefs
|
||||||
|
#define _prefs_parse _sleep_prefs_parse
|
||||||
|
#define _sleep __sleep
|
||||||
|
#include "../src/sleep.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _sleep
|
||||||
|
|
||||||
|
/* strings.c */
|
||||||
|
#define main _strings_main
|
||||||
|
#define _usage _strings_usage
|
||||||
|
#define _Prefs _strings_Prefs
|
||||||
|
#define Prefs strings_Prefs
|
||||||
|
#define _prefs_parse _strings_prefs_parse
|
||||||
|
#define _strings __strings
|
||||||
|
#include "../src/strings.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _strings
|
||||||
|
|
||||||
|
/* tail.c */
|
||||||
|
#define main _tail_main
|
||||||
|
#define _usage _tail_usage
|
||||||
|
#define _Prefs _tail_Prefs
|
||||||
|
#define Prefs tail_Prefs
|
||||||
|
#define _prefs_parse _tail_prefs_parse
|
||||||
|
#define _tail __tail
|
||||||
|
#include "../src/tail.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _tail
|
||||||
|
|
||||||
|
/* test.c */
|
||||||
|
#define main _test_main
|
||||||
|
#define _usage _test_usage
|
||||||
|
#define _Prefs _test_Prefs
|
||||||
|
#define Prefs test_Prefs
|
||||||
|
#define _prefs_parse _test_prefs_parse
|
||||||
|
#define _test __test
|
||||||
|
#include "../src/test.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _test
|
||||||
|
|
||||||
|
/* time.c */
|
||||||
|
#define main _time_main
|
||||||
|
#define _usage _time_usage
|
||||||
|
#define _Prefs _time_Prefs
|
||||||
|
#define Prefs time_Prefs
|
||||||
|
#define _prefs_parse _time_prefs_parse
|
||||||
|
#define _time __time
|
||||||
|
#include "../src/time.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _time
|
||||||
|
|
||||||
|
/* touch.c */
|
||||||
|
#define main _touch_main
|
||||||
|
#define _usage _touch_usage
|
||||||
|
#define _Prefs _touch_Prefs
|
||||||
|
#define Prefs touch_Prefs
|
||||||
|
#define _prefs_parse _touch_prefs_parse
|
||||||
|
#define _touch __touch
|
||||||
|
#include "../src/touch.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _touch
|
||||||
|
|
||||||
|
/* true.c */
|
||||||
|
#define main _true_main
|
||||||
|
#define _usage _true_usage
|
||||||
|
#define _Prefs _true_Prefs
|
||||||
|
#define Prefs true_Prefs
|
||||||
|
#define _prefs_parse _true_prefs_parse
|
||||||
|
#define _true __true
|
||||||
|
#include "../src/true.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _true
|
||||||
|
|
||||||
|
/* tty.c */
|
||||||
|
#define main _tty_main
|
||||||
|
#define _usage _tty_usage
|
||||||
|
#define _Prefs _tty_Prefs
|
||||||
|
#define Prefs tty_Prefs
|
||||||
|
#define _prefs_parse _tty_prefs_parse
|
||||||
|
#define _tty __tty
|
||||||
|
#include "../src/tty.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _tty
|
||||||
|
|
||||||
|
/* uname.c */
|
||||||
|
#define main _uname_main
|
||||||
|
#define _usage _uname_usage
|
||||||
|
#define _Prefs _uname_Prefs
|
||||||
|
#define Prefs uname_Prefs
|
||||||
|
#define _prefs_parse _uname_prefs_parse
|
||||||
|
#define _uname __uname
|
||||||
|
#include "../src/uname.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _uname
|
||||||
|
|
||||||
|
/* uniq.c */
|
||||||
|
#define main _uniq_main
|
||||||
|
#define _usage _uniq_usage
|
||||||
|
#define _Prefs _uniq_Prefs
|
||||||
|
#define Prefs uniq_Prefs
|
||||||
|
#define _prefs_parse _uniq_prefs_parse
|
||||||
|
#define _uniq __uniq
|
||||||
|
#include "../src/uniq.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _uniq
|
||||||
|
|
||||||
|
/* unlink.c */
|
||||||
|
#define main _unlink_main
|
||||||
|
#define _usage _unlink_usage
|
||||||
|
#define _Prefs _unlink_Prefs
|
||||||
|
#define Prefs unlink_Prefs
|
||||||
|
#define _prefs_parse _unlink_prefs_parse
|
||||||
|
#define _unlink __unlink
|
||||||
|
#include "../src/unlink.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _unlink
|
||||||
|
|
||||||
|
/* wc.c */
|
||||||
|
#define main _wc_main
|
||||||
|
#define _usage _wc_usage
|
||||||
|
#define _Prefs _wc_Prefs
|
||||||
|
#define Prefs wc_Prefs
|
||||||
|
#define _prefs_parse _wc_prefs_parse
|
||||||
|
#define _wc __wc
|
||||||
|
#include "../src/wc.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _wc
|
||||||
|
|
||||||
|
/* who.c */
|
||||||
|
#define main _who_main
|
||||||
|
#define _usage _who_usage
|
||||||
|
#define _Prefs _who_Prefs
|
||||||
|
#define Prefs who_Prefs
|
||||||
|
#define _prefs_parse _who_prefs_parse
|
||||||
|
#define _who __who
|
||||||
|
#include "../src/who.c"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _who
|
||||||
|
|
||||||
|
|
||||||
|
static Call _calls[] =
|
||||||
|
{
|
||||||
|
|
||||||
|
{ "basename", _basename_main },
|
||||||
|
{ "cat", _cat_main },
|
||||||
|
{ "chgrp", _chgrp_main },
|
||||||
|
{ "chmod", _chmod_main },
|
||||||
|
{ "chown", _chown_main },
|
||||||
|
{ "cksum", _cksum_main },
|
||||||
|
{ "cmp", _cmp_main },
|
||||||
|
{ "cp", _cp_main },
|
||||||
|
{ "df", _df_main },
|
||||||
|
{ "dirname", _dirname_main },
|
||||||
|
{ "du", _du_main },
|
||||||
|
{ "echo", _echo_main },
|
||||||
|
{ "false", _false_main },
|
||||||
|
{ "file", _file_main },
|
||||||
|
{ "find", _find_main },
|
||||||
|
{ "head", _head_main },
|
||||||
|
{ "id", _id_main },
|
||||||
|
{ "kill", _kill_main },
|
||||||
|
{ "link", _link_main },
|
||||||
|
{ "ln", _ln_main },
|
||||||
|
{ "locale", _locale_main },
|
||||||
|
{ "logname", _logname_main },
|
||||||
|
{ "ls", _ls_main },
|
||||||
|
{ "mkdir", _mkdir_main },
|
||||||
|
{ "mkfifo", _mkfifo_main },
|
||||||
|
{ "mv", _mv_main },
|
||||||
|
{ "nice", _nice_main },
|
||||||
|
{ "pr", _pr_main },
|
||||||
|
{ "printf", _printf_main },
|
||||||
|
{ "pwd", _pwd_main },
|
||||||
|
{ "renice", _renice_main },
|
||||||
|
{ "rm", _rm_main },
|
||||||
|
{ "rmdir", _rmdir_main },
|
||||||
|
{ "sleep", _sleep_main },
|
||||||
|
{ "strings", _strings_main },
|
||||||
|
{ "tail", _tail_main },
|
||||||
|
{ "test", _test_main },
|
||||||
|
{ "time", _time_main },
|
||||||
|
{ "touch", _touch_main },
|
||||||
|
{ "true", _true_main },
|
||||||
|
{ "tty", _tty_main },
|
||||||
|
{ "uname", _uname_main },
|
||||||
|
{ "uniq", _uniq_main },
|
||||||
|
{ "unlink", _unlink_main },
|
||||||
|
{ "wc", _wc_main },
|
||||||
|
{ "who", _who_main },
|
||||||
|
{ NULL, NULL }
|
||||||
|
};
|
81
tools/utils.sh
Normal file
81
tools/utils.sh
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#$Id$
|
||||||
|
#Copyright (c) 2009 Pierre Pronchery <khorben@defora.org>
|
||||||
|
#This file is part of DeforaOS Unix utils
|
||||||
|
#This program is free software: you can redistribute it and/or modify
|
||||||
|
#it under the terms of the GNU General Public License as published by
|
||||||
|
#the Free Software Foundation, version 3 of the License.
|
||||||
|
#
|
||||||
|
#This program is distributed in the hope that it will be useful,
|
||||||
|
#but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
#GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
#You should have received a copy of the GNU General Public License
|
||||||
|
#along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#functions
|
||||||
|
#includes
|
||||||
|
includes() {
|
||||||
|
BASENAME="$1"
|
||||||
|
PROGRAM="$2"
|
||||||
|
|
||||||
|
cat << EOF
|
||||||
|
|
||||||
|
/* $BASENAME */
|
||||||
|
#define main _${PROGRAM}_main
|
||||||
|
#define _usage _${PROGRAM}_usage
|
||||||
|
#define _Prefs _${PROGRAM}_Prefs
|
||||||
|
#define Prefs ${PROGRAM}_Prefs
|
||||||
|
#define _prefs_parse _${PROGRAM}_prefs_parse
|
||||||
|
#define _${PROGRAM} __${PROGRAM}
|
||||||
|
#include "../src/$BASENAME"
|
||||||
|
#undef main
|
||||||
|
#undef _usage
|
||||||
|
#undef _Prefs
|
||||||
|
#undef Prefs
|
||||||
|
#undef _prefs_parse
|
||||||
|
#undef _${PROGRAM}
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#main
|
||||||
|
cat > "utils.c" << EOF
|
||||||
|
/* \$Id\$ */
|
||||||
|
/* Copyright (c) 2009 Pierre Pronchery <khorben@defora.org> */
|
||||||
|
/* This file is part of DeforaOS Unix utils */
|
||||||
|
/* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, version 3 of the License.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
|
||||||
|
EOF
|
||||||
|
for i in ../src/*.c; do
|
||||||
|
BASENAME=`basename $i`
|
||||||
|
PROGRAM=${BASENAME%%.c}
|
||||||
|
#there is an exception
|
||||||
|
[ "$PROGRAM" = "common" ] && continue
|
||||||
|
includes "$BASENAME" "$PROGRAM"
|
||||||
|
CALLS="$CALLS
|
||||||
|
{ \"$PROGRAM\", _${PROGRAM}_main },"
|
||||||
|
done >> "utils.c"
|
||||||
|
cat >> "utils.c" << EOF
|
||||||
|
|
||||||
|
|
||||||
|
static Call _calls[] =
|
||||||
|
{
|
||||||
|
$CALLS
|
||||||
|
{ NULL, NULL }
|
||||||
|
};
|
||||||
|
EOF
|
Loading…
Reference in New Issue
Block a user