master xplshn/aruu / cmd / pseudo / printenv.c
 1/* See LICENSE file for copyright and license details. */
 2
 3
 4#include <stdio.h>
 5#include <stdlib.h>
 6
 7#include "util.h"
 8
 9extern char **environ;
10
11static void
12usage(void)
13{
14	eprintf("usage: %s [var ...]\n", argv0);
15}
16
17// ?man printenv: print environment variables
18// ?man arguments: var ...
19// ?man display all or part of the current environment
20int
21main(int argc, char *argv[])
22{
23	char *var;
24	int ret = 0;
25
26	ARGBEGIN {
27	default:
28		usage();
29	} ARGEND
30
31	if (!argc) {
32		for (; *environ; environ++)
33			puts(*environ);
34	} else {
35		for (; *argv; argc--, argv++) {
36			if ((var = getenv(*argv)))
37				puts(var);
38			else
39				ret = 1;
40		}
41	}
42
43	return fshut(stdout, "<stdout>") ? 2 : ret;
44}