summaryrefslogtreecommitdiff
path: root/util/sbase/printenv.c
blob: 19b5b7d24e14fd946eb4425b949c07c931022e2d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/* See LICENSE file for copyright and license details. */
#include <stdio.h>
#include <stdlib.h>

#include "util.h"

extern char **environ;

static void
usage(void)
{
	eprintf("usage: %s [var ...]\n", argv0);
}

int
main(int argc, char *argv[])
{
	char *var;
	int ret = 0;

	ARGBEGIN {
	default:
		usage();
	} ARGEND

	if (!argc) {
		for (; *environ; environ++)
			puts(*environ);
	} else {
		for (; *argv; argc--, argv++) {
			if ((var = getenv(*argv)))
				puts(var);
			else
				ret = 1;
		}
	}

	return fshut(stdout, "<stdout>") ? 2 : ret;
}