1
0
Fork 0
mirror of https://github.com/pygos/init.git synced 2024-11-14 15:57:10 +01:00

Centralize/unify version string printing

Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
This commit is contained in:
David Oberhollenzer 2018-09-01 17:22:24 +02:00
parent 3b8764b9d2
commit 42fba964c9
9 changed files with 49 additions and 51 deletions

View file

@ -2,6 +2,7 @@ shutdown_SOURCES = cmd/shutdown.c
shutdown_CPPFLAGS = $(AM_CPPFLAGS) shutdown_CPPFLAGS = $(AM_CPPFLAGS)
shutdown_CFLAGS = $(AM_CFLAGS) shutdown_CFLAGS = $(AM_CFLAGS)
shutdown_LDFLAGS = $(AM_LDFLAGS) shutdown_LDFLAGS = $(AM_LDFLAGS)
shutdown_LDADD = libinit.a
runsvc_SOURCES = cmd/runsvc/runsvc.c cmd/runsvc/env.c cmd/runsvc/runsvc.h runsvc_SOURCES = cmd/runsvc/runsvc.c cmd/runsvc/env.c cmd/runsvc/runsvc.h
runsvc_CPPFLAGS = $(AM_CPPFLAGS) runsvc_CPPFLAGS = $(AM_CPPFLAGS)

View file

@ -63,19 +63,6 @@ static NORETURN void usage(const char *progname, int status)
exit(status); exit(status);
} }
static NORETURN void version(const char *progname)
{
fprintf(stdout,
"%s (Pygos init) %s\n"
"Copyright (C) 2018 David Oberhollenzer\n"
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n",
progname, PACKAGE_VERSION);
exit(EXIT_SUCCESS);
}
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
int c, ret, flags = 0; int c, ret, flags = 0;
@ -108,7 +95,7 @@ int main(int argc, char **argv)
defact = RB_AUTOBOOT; defact = RB_AUTOBOOT;
break; break;
case 'V': case 'V':
version(ptr); print_version(ptr);
case 'h': case 'h':
usage(ptr, EXIT_SUCCESS); usage(ptr, EXIT_SUCCESS);
default: default:

View file

@ -72,13 +72,6 @@ static const struct option options[] = {
static const char *shortopt = "hVcf:l:i:"; static const char *shortopt = "hVcf:l:i:";
static const char *versiontext =
"syslog (Pygos init) "PACKAGE_VERSION"\n"
"Copyright (C) 2018 David Oberhollenzer\n"
"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n";
static const char *helptext = static const char *helptext =
"Usage: syslog [OPTION]... [STRING]...\n\n" "Usage: syslog [OPTION]... [STRING]...\n\n"
"Concatenate the given STRINGs and send a log message to the syslog daemon.\n" "Concatenate the given STRINGs and send a log message to the syslog daemon.\n"
@ -125,12 +118,6 @@ static NORETURN void usage(int status)
exit(status); exit(status);
} }
static NORETURN void version(void)
{
fputs(versiontext, stdout);
exit(EXIT_SUCCESS);
}
static int readint(const char *str) static int readint(const char *str)
{ {
int x = 0; int x = 0;
@ -188,7 +175,7 @@ static void process_options(int argc, char **argv)
case 'h': case 'h':
usage(EXIT_SUCCESS); usage(EXIT_SUCCESS);
case 'V': case 'V':
version(); print_version("syslog");
default: default:
usage(EXIT_FAILURE); usage(EXIT_FAILURE);
} }

View file

@ -3,7 +3,8 @@ HEADRS = lib/include/util.h lib/include/service.h lib/include/telinit.h
libinit_a_SOURCES = lib/util/delsvc.c lib/util/svcmap.c lib/util/enum_by_name.c libinit_a_SOURCES = lib/util/delsvc.c lib/util/svcmap.c lib/util/enum_by_name.c
libinit_a_SOURCES += lib/util/rdsvc.c lib/util/svcscan.c lib/util/mksock.c libinit_a_SOURCES += lib/util/rdsvc.c lib/util/svcscan.c lib/util/mksock.c
libinit_a_SOURCES += lib/util/del_svc_list.c lib/util/svc_tsort.c libinit_a_SOURCES += lib/util/del_svc_list.c lib/util/svc_tsort.c
libinit_a_SOURCES += lib/util/opensock.c lib/util/enum_to_name.c $(HEADRS) libinit_a_SOURCES += lib/util/opensock.c lib/util/enum_to_name.c
libinit_a_SOURCES += lib/util/print_version.c $(HEADRS)
libinit_a_CPPFLAGS = $(AM_CPPFLAGS) libinit_a_CPPFLAGS = $(AM_CPPFLAGS)
libinit_a_CFLAGS = $(AM_CFLAGS) libinit_a_CFLAGS = $(AM_CFLAGS)

View file

@ -70,5 +70,8 @@ const char *enum_to_name(const enum_map_t *map, int value);
*/ */
int mksock(const char *path, int flags); int mksock(const char *path, int flags);
/* print a default version info and license string */
NORETURN void print_version(const char *program);
#endif /* UTIL_H */ #endif /* UTIL_H */

37
lib/util/print_version.c Normal file
View file

@ -0,0 +1,37 @@
/* SPDX-License-Identifier: GPL-3.0-or-later */
/*
* Copyright (C) 2018 - David Oberhollenzer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#include <stdlib.h>
#include <stdio.h>
#include "config.h"
#include "util.h"
#define GPL_URL "https://gnu.org/licenses/gpl.html"
static const char *version_string =
"%s (pygos init) " PACKAGE_VERSION "\n"
"Copyright (C) 2018 David Oberhollenzer\n\n"
"License GPLv3+: GNU GPL version 3 or later <" GPL_URL ">.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n";
void print_version(const char *program)
{
fprintf(stdout, version_string, program);
exit(EXIT_SUCCESS);
}

View file

@ -14,6 +14,7 @@ klogd_SOURCES = syslogd/klogd.c
klogd_CPPFLAGS = $(AM_CPPFLAGS) klogd_CPPFLAGS = $(AM_CPPFLAGS)
klogd_CFLAGS = $(AM_CFLAGS) klogd_CFLAGS = $(AM_CFLAGS)
klogd_LDFLAGS = $(AM_LDFLAGS) klogd_LDFLAGS = $(AM_LDFLAGS)
klogd_LDADD = libinit.a
sbin_PROGRAMS += klogd sbin_PROGRAMS += klogd
endif endif

View file

@ -25,6 +25,7 @@
#include <errno.h> #include <errno.h>
#include "config.h" #include "config.h"
#include "util.h"
enum { enum {
KLOG_CLOSE = 0, KLOG_CLOSE = 0,
@ -48,13 +49,6 @@ static const struct option options[] = {
static const char *shortopt = "hVl:"; static const char *shortopt = "hVl:";
static const char *versiontext =
"klogd (Pygos init) "PACKAGE_VERSION"\n"
"Copyright (C) 2018 David Oberhollenzer\n"
"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n";
static const char *helptext = static const char *helptext =
"Usage: klogd [OPTION]... \n\n" "Usage: klogd [OPTION]... \n\n"
"Collect printk() messages from the kernel and forward them to syslogd.\n" "Collect printk() messages from the kernel and forward them to syslogd.\n"
@ -82,8 +76,7 @@ static void process_options(int argc, char **argv)
fputs(helptext, stdout); fputs(helptext, stdout);
exit(EXIT_SUCCESS); exit(EXIT_SUCCESS);
case 'V': case 'V':
fputs(versiontext, stdout); print_version("klogd");
exit(EXIT_SUCCESS);
default: default:
fputs("Try `klogd --help' for more information\n", fputs("Try `klogd --help' for more information\n",
stderr); stderr);

View file

@ -32,10 +32,6 @@
#include "syslogd.h" #include "syslogd.h"
#include "util.h" #include "util.h"
#define GPL_URL "https://gnu.org/licenses/gpl.html"
static const struct option long_opts[] = { static const struct option long_opts[] = {
{ "help", no_argument, NULL, 'h' }, { "help", no_argument, NULL, 'h' },
{ "version", no_argument, NULL, 'V' }, { "version", no_argument, NULL, 'V' },
@ -49,13 +45,6 @@ static const struct option long_opts[] = {
static const char *short_opts = "hVcrm:u:g:"; static const char *short_opts = "hVcrm:u:g:";
const char *version_string =
"usyslogd (pygos init) " PACKAGE_VERSION "\n"
"Copyright (C) 2018 David Oberhollenzer\n\n"
"License GPLv3+: GNU GPL version 3 or later <" GPL_URL ">.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n";
const char *usage_string = const char *usage_string =
"Usage: usyslogd [OPTIONS..]\n\n" "Usage: usyslogd [OPTIONS..]\n\n"
"The following options are supported:\n" "The following options are supported:\n"
@ -183,8 +172,7 @@ static void process_options(int argc, char **argv)
fputs(usage_string, stdout); fputs(usage_string, stdout);
exit(EXIT_SUCCESS); exit(EXIT_SUCCESS);
case 'V': case 'V':
fputs(version_string, stdout); print_version("usyslogd");
exit(EXIT_SUCCESS);
default: default:
goto fail; goto fail;
} }