summaryrefslogtreecommitdiffstatshomepage
path: root/unix/modos.c
diff options
context:
space:
mode:
Diffstat (limited to 'unix/modos.c')
-rw-r--r--unix/modos.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/unix/modos.c b/unix/modos.c
index 8463259d5f..b24e52af9e 100644
--- a/unix/modos.c
+++ b/unix/modos.c
@@ -30,6 +30,7 @@
#include <unistd.h>
#include <errno.h>
#include <stdlib.h>
+#include <string.h>
#include "py/mpconfig.h"
#include "py/nlr.h"
@@ -134,6 +135,12 @@ STATIC mp_obj_t mod_os_system(mp_obj_t cmd_in) {
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_os_system_obj, mod_os_system);
+STATIC mp_obj_t mod_os_getenv(mp_obj_t var_in) {
+ const char *s = getenv(mp_obj_str_get_str(var_in));
+ return mp_obj_new_str(s, strlen(s), false);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_os_getenv_obj, mod_os_getenv);
+
STATIC const mp_map_elem_t mp_module_os_globals_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR__os) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_stat), (mp_obj_t)&mod_os_stat_obj },
@@ -142,6 +149,7 @@ STATIC const mp_map_elem_t mp_module_os_globals_table[] = {
#endif
{ MP_OBJ_NEW_QSTR(MP_QSTR_system), (mp_obj_t)&mod_os_system_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_unlink),(mp_obj_t)&mod_os_unlink_obj},
+ { MP_OBJ_NEW_QSTR(MP_QSTR_getenv),(mp_obj_t)&mod_os_getenv_obj},
};
STATIC MP_DEFINE_CONST_DICT(mp_module_os_globals, mp_module_os_globals_table);