#include <unistd.h>
#include <gio/gunixinputstream.h>
#include <gio/gunixoutputstream.h>
+#else
+#include <io.h>
#endif
static GOptionEntry options[] = {
return 0;
}
+static int
+env_mode (int argc, char **argv)
+{
+ char **env;
+ int i;
+
+ env = g_get_environ ();
+
+ for (i = 0; env[i]; i++)
+ g_print ("%s\n", env[i]);
+
+ g_strfreev (env);
+
+ return 0;
+}
+
+static int
+cwd_mode (int argc, char **argv)
+{
+ char *cwd;
+
+ cwd = g_get_current_dir ();
+ g_print ("%s\n", cwd);
+ g_free (cwd);
+
+ return 0;
+}
+
+static int
+printenv_mode (int argc, char **argv)
+{
+ gint i;
+
+ for (i = 2; i < argc; i++)
+ {
+ const gchar *value = g_getenv (argv[i]);
+
+ if (value != NULL)
+ g_print ("%s=%s\n", argv[i], value);
+ }
+
+ return 0;
+}
+
int
main (int argc, char **argv)
{
return sleep_forever_mode (argc, argv);
else if (strcmp (mode, "write-to-fds") == 0)
return write_to_fds (argc, argv);
+ else if (strcmp (mode, "env") == 0)
+ return env_mode (argc, argv);
+ else if (strcmp (mode, "cwd") == 0)
+ return cwd_mode (argc, argv);
+ else if (strcmp (mode, "printenv") == 0)
+ return printenv_mode (argc, argv);
else
{
g_printerr ("Unknown MODE %s\n", argv[1]);