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