Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 28th, 2012  |  syntax: None  |  size: 1.19 KB  |  hits: 20  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Malformed environment variables detection in python
  2. COLORTERM=gnome-terminal
  3. mc=() {  . /usr/share/mc/mc-wrapper.sh
  4. }
  5. _=/usr/bin/env
  6.        
  7. import os
  8. import pprint
  9. import subprocess
  10.  
  11. command = ['bash', '-c', 'source init_env && env']
  12.  
  13. proc = subprocess.Popen(command, stdout = subprocess.PIPE)
  14.  
  15. for line in proc.stdout:
  16.     (key, _, value) = line.partition("=")
  17.     os.environ[key] = value
  18.  
  19. proc.communicate()
  20.        
  21. for line in proc.stdout:
  22.     (key, _, value) = line.partition("=")
  23.     if not value:
  24.         continue
  25.     os.environ[key] = value
  26.        
  27. os.system("ls -l")
  28.        
  29. sh: mc: line 1: syntax error: unexpected end of file
  30. sh: error importing function definition for `mc'
  31.        
  32. import os
  33. import sys
  34. import pickle
  35.  
  36. pickle.dump(os.environ, sys.stdout)
  37.        
  38. python -c 'import os, sys, pickle; pickle.dump(os.environ, sys.stdout)'
  39.        
  40. import os
  41. import pprint
  42. import subprocess
  43. import pickle
  44.  
  45. command = [
  46.       'bash',
  47.       '-c',
  48.       'source init_env && ' +
  49.          'python -c "import os, sys, pickle; ' +
  50.                     'pickle.dump(os.environ, sys.stdout)"'
  51. ]
  52.  
  53. proc = subprocess.Popen(command, stdout = subprocess.PIPE)
  54.  
  55. for k, v in pickle.load(proc.stdout).iteritems():
  56.     os.environ[k] = v
  57.  
  58. proc.communicate()