From: Sebastian Harl Date: Thu, 5 Dec 2013 17:31:36 +0000 (+0100) Subject: sysdb: Added a initial client implementation. X-Git-Tag: sysdb-0.1.0~326 X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=commitdiff_plain;h=55f329ab567091e3203809ca35af766e45966b45;hp=f9589ac43999831fe995da5b1cb61a6db07967a3 sysdb: Added a initial client implementation. For now, this is basically a placeholder. --- diff --git a/.gitignore b/.gitignore index 0318b30..63813b0 100644 --- a/.gitignore +++ b/.gitignore @@ -36,6 +36,7 @@ src/liboconfig/scanner.c *.la *.lo *.o +sysdb sysdbd sysdbd.1 sysdbd.conf.5 diff --git a/src/Makefile.am b/src/Makefile.am index a82a16b..724bfaa 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -76,7 +76,11 @@ libsysdb_la_SOURCES += \ libsysdb_la_LIBADD += -ldbi endif -bin_PROGRAMS = sysdbd +bin_PROGRAMS = sysdb sysdbd + +sysdb_SOURCES = client/sysdb.c include/client/sysdb.h +sysdb_CFLAGS = $(AM_CFLAGS) -DBUILD_DATE="\"$$( date --utc '+%F %T' ) (UTC)\"" +sysdb_LDADD = libsysdbclient.la sysdbd_SOURCES = daemon/sysdbd.c include/sysdb.h \ daemon/config.c include/daemon/config.h diff --git a/src/client/sysdb.c b/src/client/sysdb.c new file mode 100644 index 0000000..073e40e --- /dev/null +++ b/src/client/sysdb.c @@ -0,0 +1,115 @@ +/* + * SysDB - src/client/sysdb.c + * Copyright (C) 2013 Sebastian 'tokkee' Harl + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS 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 COPYRIGHT HOLDERS OR + * 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. + */ + +#if HAVE_CONFIG_H +# include "config.h" +#endif /* HAVE_CONFIG_H */ + +#include "client/sysdb.h" +#include "client/sock.h" + +#if HAVE_LIBGEN_H +# include +#else /* HAVE_LIBGEN_H */ +# define basename(path) (path) +#endif /* ! HAVE_LIBGEN_H */ + +#include +#include + +#include +#include +#include + +#include + +#ifndef DEFAULT_SOCKET +# define DEFAULT_SOCKET "unix:"LOCALSTATEDIR"/run/sysdbd.sock" +#endif + +static void +exit_usage(char *name, int status) +{ + printf( +"Usage: %s \n" + +"\nOptions:\n" +" -h display this help and exit\n" +" -V display the version number and copyright\n" + +"\nSysDB client "SDB_CLIENT_VERSION_STRING SDB_CLIENT_VERSION_EXTRA", " +PACKAGE_URL"\n", basename(name)); + exit(status); +} /* exit_usage */ + +static void +exit_version(void) +{ + printf("SysDB version "SDB_CLIENT_VERSION_STRING + SDB_CLIENT_VERSION_EXTRA", built "BUILD_DATE"\n" + "using libsysdbclient version %s%s\n" + "Copyright (C) 2012-2013 "PACKAGE_MAINTAINER"\n" + + "\nThis is free software under the terms of the BSD license, see " + "the source for\ncopying conditions. There is NO WARRANTY; not " + "even for MERCHANTABILITY or\nFITNESS FOR A PARTICULAR " + "PURPOSE.\n", sdb_client_version_string(), + sdb_client_version_extra()); + exit(0); +} /* exit_version */ + +int +main(int argc, char **argv) +{ + while (42) { + int opt = getopt(argc, argv, "hV"); + + if (-1 == opt) + break; + + switch (opt) { + case 'h': + exit_usage(argv[0], 0); + break; + case 'V': + exit_version(); + break; + default: + exit_usage(argv[0], 1); + } + } + + if (optind < argc) + exit_usage(argv[0], 1); + + printf("SysDB client "SDB_CLIENT_VERSION_STRING + SDB_CLIENT_VERSION_EXTRA"\n"); + return 0; +} /* main */ + +/* vim: set tw=78 sw=4 ts=4 noexpandtab : */ +