arguments.h revision 67e571de63a8e465dc8f1b17e16744a1d3fb552c
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen * lxc: linux Container library
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen * (C) Copyright IBM Corp. 2007, 2008
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen * Daniel Lezcano <dlezcano at fr.ibm.com>
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen * Michel Normand <normand at fr.ibm.com>
6c2ce1d5bf17b21e804a079eb0f973b7ab83e0d8Timo Sirainen * This library is free software; you can redistribute it and/or
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen * modify it under the terms of the GNU Lesser General Public
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen * License as published by the Free Software Foundation; either
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen * version 2.1 of the License, or (at your option) any later version.
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen * This library is distributed in the hope that it will be useful,
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen * but WITHOUT ANY WARRANTY; without even the implied warranty of
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen * Lesser General Public License for more details.
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen * You should have received a copy of the GNU Lesser General Public
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen * License along with this library; if not, write to the Free Software
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainentypedef int (*lxc_arguments_parser_t) (struct lxc_arguments *, int, char*);
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainentypedef int (*lxc_arguments_checker_t) (const struct lxc_arguments *);
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen /* for lxc-console */
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen /* for lxc-wait */
55bc6a7a0940ec48a68558ef70838991c5d301d2Timo Sirainen /* close fds from parent? */
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen /* remaining arguments */
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen char *const *argv;
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen /* private arguments */
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen/* option keys for long only options */
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainenextern int lxc_arguments_parse(struct lxc_arguments *args,
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainenextern int lxc_arguments_str_to_int(struct lxc_arguments *args, const char *str);
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen#define lxc_error(arg, fmt, args...) if (!(arg)->quiet) \
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen fprintf(stderr, "%s: " fmt "\n", (arg)->progname, ## args)