ossp-pkg/rc/rc.c
1.1
/*
** OpenPKG rc - Run-Command Handling for OpenPKG
** Copyright (c) 2000-2001 Ralf S. Engelschall <rse@engelschall.com>
** Copyright (c) 2001-2002 The OpenPKG Project (http://www.openpkg.org/)
** Copyright (c) 2001-2002 Cable & Wireless Deutschland (http://www.cw.com/de/)
**
** This file is part of OpenPKG, a packaging facility which can be
** found at http://www.openpkg.org/
**
** 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: run-command 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 */
}