diff options
author | obrien <obrien@FreeBSD.org> | 2003-01-20 17:56:25 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2003-01-20 17:56:25 +0000 |
commit | 8115ffde7ce352b87825c2f2e533b17173eae3e5 (patch) | |
tree | 3812382c014f69f999dcf1a2823e71d86bdf88a9 | |
parent | 8bf93c29cee78f254cf0996e319b1a4bf2eae918 (diff) | |
download | FreeBSD-src-8115ffde7ce352b87825c2f2e533b17173eae3e5.zip FreeBSD-src-8115ffde7ce352b87825c2f2e533b17173eae3e5.tar.gz |
kenv(1) has been repo copied from usr.bin to bin.
Sometimes we need kenv(1) in /etc/rc.diskless*.
-rw-r--r-- | bin/Makefile | 1 | ||||
-rw-r--r-- | usr.bin/Makefile | 1 | ||||
-rw-r--r-- | usr.bin/kenv/Makefile | 6 | ||||
-rw-r--r-- | usr.bin/kenv/kenv.1 | 69 | ||||
-rw-r--r-- | usr.bin/kenv/kenv.c | 175 |
5 files changed, 1 insertions, 251 deletions
diff --git a/bin/Makefile b/bin/Makefile index b21c624..b9305fa 100644 --- a/bin/Makefile +++ b/bin/Makefile @@ -14,6 +14,7 @@ SUBDIR= cat \ expr \ getfacl \ hostname \ + kenv \ kill \ ln \ ls \ diff --git a/usr.bin/Makefile b/usr.bin/Makefile index 6888fb9..37a3e20 100644 --- a/usr.bin/Makefile +++ b/usr.bin/Makefile @@ -80,7 +80,6 @@ SUBDIR= alias \ join \ jot \ kdump \ - kenv \ keylogin \ keylogout \ killall \ diff --git a/usr.bin/kenv/Makefile b/usr.bin/kenv/Makefile deleted file mode 100644 index 663f43a..0000000 --- a/usr.bin/kenv/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -# $FreeBSD$ - -PROG= kenv -WARNS?= 6 - -.include <bsd.prog.mk> diff --git a/usr.bin/kenv/kenv.1 b/usr.bin/kenv/kenv.1 deleted file mode 100644 index 4d314f3..0000000 --- a/usr.bin/kenv/kenv.1 +++ /dev/null @@ -1,69 +0,0 @@ -.\" Copyright (c) 2000 Peter Wemm <peter@FreeBSD.org> -.\" -.\" 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 AUTHORS 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 AUTHORS 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. -.\" -.\" $FreeBSD$ -.\" -.Dd July 8, 2000 -.Dt KENV 1 -.Os -.Sh NAME -.Nm kenv -.Nd dump or modify the kernel environment -.Sh SYNOPSIS -.Nm -.Op Fl h -.Nm -.Ar variable Ns Op = Ns Ar value -.Nm -.Fl u -.Ar variable -.Sh DESCRIPTION -The -.Nm -utility will dump the kernel environment if -invoked without arguments. -If the -.Fl h -option is specified, it will limit the report to kernel probe hints. -If an optional -.Ar variable -name is specified, -.Nm -will only report that value. -If the -.Fl u -option is specified, -.Nm -will delete the given environment variable. -If the environment variable is followed by an optional -.Ar value , -.Nm -will set the environment variable to this value. -.Sh SEE ALSO -.Xr kenv 2 , -.Xr loader 8 -.Sh HISTORY -The -.Nm -utility appeared in -.Fx 4.1.1 . diff --git a/usr.bin/kenv/kenv.c b/usr.bin/kenv/kenv.c deleted file mode 100644 index edd022c..0000000 --- a/usr.bin/kenv/kenv.c +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Copyright (c) 2000 Peter Wemm <peter@freebsd.org> - * - * 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 AUTHORS 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 AUTHORS 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/sysctl.h> -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <errno.h> -#include <err.h> -#include <kenv.h> -#include <unistd.h> - -static void usage(void); -static int kdumpenv(void); -static int kgetenv(char *); -static int ksetenv(char *, char *); -static int kunsetenv(char *); - -static int hflag = 0; -static int uflag = 0; - -static void -usage(void) -{ - (void)fprintf(stderr, "%s\n%s\n%s\n", - "usage: kenv [-h]", - " kenv variable[=value]", - " kenv -u variable"); - exit(1); -} - -int -main(int argc, char **argv) -{ - char *env, *eq, *val; - int ch, error; - - error = 0; - val = NULL; - env = NULL; - while ((ch = getopt(argc, argv, "hu")) != -1) { - switch (ch) { - case 'h': - hflag++; - break; - case 'u': - uflag++; - break; - default: - usage(); - } - } - argc -= optind; - argv += optind; - if (argc > 0) { - env = argv[0]; - eq = strchr(env, '='); - if (eq != NULL) { - *eq++ = '\0'; - val = eq; - } - argv++; - argc--; - } - if (hflag && (env != NULL)) - usage(); - if ((argc > 0) || (uflag && (env == NULL))) - usage(); - if (env == NULL) - kdumpenv(); - else if (val == NULL) { - if (uflag) { - error = kunsetenv(env); - if (error) - warnx("unable to unset %s", env); - } else { - error = kgetenv(env); - if (error) - warnx("unable to get %s", env); - } - } else { - error = ksetenv(env, val); - if (error) - warnx("unable to set %s to %s", env, val); - } - return (error); -} - -static int -kdumpenv() -{ - char *buf, *cp; - int len; - - len = kenv(KENV_DUMP, NULL, NULL, 0); - len = len * 120 / 100; - buf = malloc(len); - if (buf == NULL) - return (-1); - /* Be defensive */ - memset(buf, 0, len); - kenv(KENV_DUMP, NULL, buf, len); - for (; *buf != '\0'; buf += strlen(buf) + 1) { - if (hflag) { - if (strncmp(buf, "hint.", 5) != 0) - continue; - } - cp = strchr(buf, '='); - if (cp == NULL) - continue; - *cp++ = '\0'; - printf("%s=\"%s\"\n", buf, cp); - buf = cp; - } - return (0); -} - -static int -kgetenv(char *env) -{ - char buf[1024]; - int ret; - - ret = kenv(KENV_GET, env, buf, sizeof(buf)); - if (ret == -1) - return (ret); - printf("%s\n", buf); - return (0); -} - -static int -ksetenv(char *env, char *val) -{ - int ret; - - ret = kenv(KENV_SET, env, val, strlen(val)+1); - if (ret == 0) - printf("%s=\"%s\"\n", env, val); - return (ret); -} - -static int -kunsetenv(char *env) -{ - int ret; - - ret = kenv(KENV_UNSET, env, NULL, 0); - return (ret); -} |