ossp-pkg/rc/rc.c
1.2
/* rc - OSSP Runcommand processor
** Copyright (c) 2002 Cable & Wireless Deutschland GmbH
** Copyright (c) 2002 The OSSP Project <http://www.ossp.org/>
** Copyright (c) 2002 Ralf S. Engelschall
**
** This file is part of OSSP rc, a portable Runcommand processor
** which can be found at http://www.ossp.org/pkg/rc/
**
** Permission to use, copy, modify, and distribute this software for
** any purpose with or without fee is hereby granted, provided that
** the above copyright notice and this permission notice appear in all
** copies.
**
** THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
** IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
** USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
** OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
** SUCH DAMAGE.
**
** rc.c: Runcommand processor ANSI C source file
*/
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <rc.h>
void usage(char *szProgname)
{
fprintf(stdout, "Usage: %s [-v|--verbose] [-h|--help]\n\
[-p|--print] [-e|--eval] [-c|--config]\
[-q|--query] [-r|--raw]\n<package>\
<command> [<command> ...]", szProgname);
}
int main(int argc, char *argv[])
{
int nOpt = 0; /* holds getopt(3) return value */
int nFile = 0; /* for checking file existence */
int bVerbose = 0; /* v */
int bHelp = 0; /* h */
int bPrint = 0; /* p */
int bEval = 0; /* e */
int bConfig = 0; /* c */
int bQuery = 0; /* q */
int bRaw = 0; /* r */
while ((nOpt = getopt(argc, argv, "vhpecqr:")) != -1)
switch (nOpt) {
case 'v':
bVerbose = TRUE;
break;
case 'h':
bHelp = TRUE;
break;
case 'p':
bPrint = TRUE;
break;
case 'e':
bEval = TRUE;
break;
case 'c':
bConfig = TRUE;
break;
case 'q':
bQuery = TRUE;
break;
case 'r':
bRaw = TRUE;
break;
case '?':
default:
usage(*argv);
}
argc -= optind;
argv += optind;
/* check existence of file input to the run-command */
if ((nFile = open(optarg, O_RDONLY, 0)) < 0)
err(1, "%s", optarg);
return 0; /* success */
}