OSSP CVS Repository

ossp - ossp-pkg/rc/rc.c 1.2
Not logged in
[Honeypot]  [Browse]  [Directory]  [Home]  [Login
[Reports]  [Search]  [Ticket]  [Timeline
  [Raw

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 */
}

CVSTrac 2.0.1