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}