Cleanup (formatting)
[idea/community.git] / bin / linux / printenv.py
index a60959ca82eb347a9a3de3f15ae9c017802d7de5..039052a1bcc140655d1a81d17cb6a3abe34b8feb 100755 (executable)
@@ -2,6 +2,7 @@
 
 # Dumps environment variables into specified file.
 # Format: zero-separated "name=value" pairs in platform encoding.
+# The script can work with any version of Python from 2.3 to at least 3.9
 
 import os
 import sys
@@ -9,10 +10,24 @@ import sys
 if len(sys.argv) != 2:
     raise Exception('Exactly one argument expected')
 
-f = open(sys.argv[1], 'wb')
+PY2 = sys.version_info < (3,)
+
+if PY2:
+    environ = os.environ
+else:
+    environ = os.environb
+
+
+def b(s):
+    if PY2:
+        return s
+    else:
+        return s.encode('utf-8')
+
+
+fd = open(sys.argv[1], 'wb')
 try:
-    for key, value in os.environ.items():
-        s = '%s=%s\0' % (key, value)
-        f.write(s.encode('utf-8'))
+    for key, value in environ.items():
+        fd.writelines([key, b('='), value, b('\0')])
 finally:
-    f.close()
+    fd.close()