Importing usr.bin/printenv
Replaces printenv from commands/env. No Minix-specific changes needed. Change-Id: I64e63c9d0ca94faadc71906cf78d18fed5905e90
This commit is contained in:
		
							parent
							
								
									2cb302057c
								
							
						
					
					
						commit
						92b8e9ac1a
					
				
							
								
								
									
										2
									
								
								commands/env/Makefile
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								commands/env/Makefile
									
									
									
									
										vendored
									
									
								
							@ -1,6 +1,4 @@
 | 
			
		||||
PROG=	env
 | 
			
		||||
MAN=
 | 
			
		||||
 | 
			
		||||
LINKS+=      ${BINDIR}/env ${BINDIR}/printenv
 | 
			
		||||
 | 
			
		||||
.include <bsd.prog.mk>
 | 
			
		||||
 | 
			
		||||
@ -1997,6 +1997,7 @@
 | 
			
		||||
./usr/man/man1/playwave.1		minix-sys
 | 
			
		||||
./usr/man/man1/pr.1			minix-sys
 | 
			
		||||
./usr/man/man1/prep.1			minix-sys
 | 
			
		||||
./usr/man/man1/printenv.1		minix-sys
 | 
			
		||||
./usr/man/man1/printf.1			minix-sys
 | 
			
		||||
./usr/man/man1/profile.1		minix-sys
 | 
			
		||||
./usr/man/man1/ps.1			minix-sys
 | 
			
		||||
 | 
			
		||||
@ -187,6 +187,7 @@
 | 
			
		||||
2012/10/17 12:00:00,usr.bin/nvi
 | 
			
		||||
2010/05/14 17:28:23,usr.bin/newgrp
 | 
			
		||||
2012/10/17 12:00:00,usr.bin/passwd
 | 
			
		||||
2013/10/17 12:00:00,usr.bin/printenv
 | 
			
		||||
2012/10/17 12:00:00,usr.bin/printf
 | 
			
		||||
2013/09/28 12:00:00,usr.bin/rev
 | 
			
		||||
2010/02/19 16:35:27,usr.bin/sed
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,7 @@ SUBDIR= \
 | 
			
		||||
	\
 | 
			
		||||
	nbperf newgrp nice nl nohup nvi \
 | 
			
		||||
	passwd \
 | 
			
		||||
	printf \
 | 
			
		||||
	printenv printf \
 | 
			
		||||
	rev \
 | 
			
		||||
	\
 | 
			
		||||
	shuffle sed seq \
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								usr.bin/printenv/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								usr.bin/printenv/Makefile
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
			
		||||
#	$NetBSD: Makefile,v 1.4 1997/01/09 15:17:30 tls Exp $
 | 
			
		||||
#	from: @(#)Makefile	8.1 (Berkeley) 6/6/93
 | 
			
		||||
 | 
			
		||||
PROG=	printenv
 | 
			
		||||
 | 
			
		||||
.include <bsd.prog.mk>
 | 
			
		||||
							
								
								
									
										66
									
								
								usr.bin/printenv/printenv.1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								usr.bin/printenv/printenv.1
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,66 @@
 | 
			
		||||
.\"	$NetBSD: printenv.1,v 1.7 2003/08/07 11:15:31 agc Exp $
 | 
			
		||||
.\"
 | 
			
		||||
.\" Copyright (c) 1980, 1990, 1993
 | 
			
		||||
.\"   The Regents of the University of California.  All rights reserved.
 | 
			
		||||
.\"
 | 
			
		||||
.\" This code is derived from software contributed to Berkeley by
 | 
			
		||||
.\" the Institute of Electrical and Electronics Engineers, Inc.
 | 
			
		||||
.\" 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.
 | 
			
		||||
.\" 3. Neither the name of the University nor the names of its contributors
 | 
			
		||||
.\"    may be used to endorse or promote products derived from this software
 | 
			
		||||
.\"    without specific prior written permission.
 | 
			
		||||
.\"
 | 
			
		||||
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
 | 
			
		||||
.\"
 | 
			
		||||
.\"	from: @(#)printenv.1	8.1 (Berkeley) 6/6/93
 | 
			
		||||
.\"	$NetBSD: printenv.1,v 1.7 2003/08/07 11:15:31 agc Exp $
 | 
			
		||||
.\"
 | 
			
		||||
.Dd June 6, 1993
 | 
			
		||||
.Dt PRINTENV 1
 | 
			
		||||
.Os
 | 
			
		||||
.Sh NAME
 | 
			
		||||
.Nm printenv
 | 
			
		||||
.Nd print out the environment
 | 
			
		||||
.Sh SYNOPSIS
 | 
			
		||||
.Nm
 | 
			
		||||
.Op Ar name
 | 
			
		||||
.Sh DESCRIPTION
 | 
			
		||||
.Nm
 | 
			
		||||
prints out the names and values of the variables in the environment,
 | 
			
		||||
with one name/value pair per line.
 | 
			
		||||
If
 | 
			
		||||
.Ar name
 | 
			
		||||
is specified, only
 | 
			
		||||
its value is printed.
 | 
			
		||||
.Pp
 | 
			
		||||
If a
 | 
			
		||||
.Ar name
 | 
			
		||||
is specified and it is not defined in the environment,
 | 
			
		||||
.Nm
 | 
			
		||||
returns exit status 1, else it returns status 0.
 | 
			
		||||
.Sh SEE ALSO
 | 
			
		||||
.Xr csh 1 ,
 | 
			
		||||
.Xr sh 1 ,
 | 
			
		||||
.Xr environ 7
 | 
			
		||||
.Sh HISTORY
 | 
			
		||||
The
 | 
			
		||||
.Nm
 | 
			
		||||
command appeared in
 | 
			
		||||
.Bx 3.0 .
 | 
			
		||||
							
								
								
									
										102
									
								
								usr.bin/printenv/printenv.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								usr.bin/printenv/printenv.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,102 @@
 | 
			
		||||
/*	$NetBSD: printenv.c,v 1.12 2011/09/06 18:26:55 joerg Exp $	*/
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 1987, 1993
 | 
			
		||||
 *    The Regents of the University of California.  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.
 | 
			
		||||
 * 3. Neither the name of the University nor the names of its contributors
 | 
			
		||||
 *    may be used to endorse or promote products derived from this software
 | 
			
		||||
 *    without specific prior written permission.
 | 
			
		||||
 *
 | 
			
		||||
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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>
 | 
			
		||||
#ifndef lint
 | 
			
		||||
__COPYRIGHT("@(#) Copyright (c) 1987, 1993\
 | 
			
		||||
 The Regents of the University of California.  All rights reserved.");
 | 
			
		||||
#endif /* not lint */
 | 
			
		||||
 | 
			
		||||
#ifndef lint
 | 
			
		||||
/*static char sccsid[] = "from: @(#)printenv.c	8.2 (Berkeley) 5/4/95";*/
 | 
			
		||||
__RCSID("$NetBSD: printenv.c,v 1.12 2011/09/06 18:26:55 joerg Exp $");
 | 
			
		||||
#endif /* not lint */
 | 
			
		||||
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <err.h>
 | 
			
		||||
 | 
			
		||||
__dead static void usage(void);
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * printenv
 | 
			
		||||
 *
 | 
			
		||||
 * Bill Joy, UCB
 | 
			
		||||
 * February, 1979
 | 
			
		||||
 */
 | 
			
		||||
int
 | 
			
		||||
main(int argc, char *argv[])
 | 
			
		||||
{
 | 
			
		||||
	extern char **environ;
 | 
			
		||||
	char *cp, **ep;
 | 
			
		||||
	size_t len;
 | 
			
		||||
	int ch;
 | 
			
		||||
 | 
			
		||||
	while ((ch = getopt(argc, argv, "")) != -1)
 | 
			
		||||
		switch(ch) {
 | 
			
		||||
		case '?':
 | 
			
		||||
		default:
 | 
			
		||||
			usage();
 | 
			
		||||
		}
 | 
			
		||||
	argc -= optind;
 | 
			
		||||
	argv += optind;
 | 
			
		||||
 | 
			
		||||
	if (argc == 0) {
 | 
			
		||||
		for (ep = environ; *ep; ep++)
 | 
			
		||||
			(void)printf("%s\n", *ep);
 | 
			
		||||
		exit(0);
 | 
			
		||||
	}
 | 
			
		||||
	if (argc != 1)
 | 
			
		||||
		usage();
 | 
			
		||||
	if (strchr(*argv, '=') != NULL)
 | 
			
		||||
		errx(1, "Invalid environment variable %s", *argv);
 | 
			
		||||
	len = strlen(*argv);
 | 
			
		||||
	for (ep = environ; *ep; ep++)
 | 
			
		||||
		if (!memcmp(*ep, *argv, len)) {
 | 
			
		||||
			cp = *ep + len;
 | 
			
		||||
			if (!*cp || *cp == '=') {
 | 
			
		||||
				(void)printf("%s\n", *cp ? cp + 1 : cp);
 | 
			
		||||
				exit(0);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	exit(1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
usage(void)
 | 
			
		||||
{
 | 
			
		||||
	(void)fprintf(stderr, "Usage: printenv [name]\n");
 | 
			
		||||
	exit(1);
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user