annotate talosnames/require.py @ 23:5f39ce13fbbc

what i meant
author Jeff Hammel <jhammel@mozilla.com>
date Tue, 10 Jul 2012 19:08:06 -0700
parents 1b18b2746e69
children cc0edf61ab21
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14
1b18b2746e69 minor fixes
Jeff Hammel <jhammel@mozilla.com>
parents: 10
diff changeset
1 import imp
1b18b2746e69 minor fixes
Jeff Hammel <jhammel@mozilla.com>
parents: 10
diff changeset
2 import os
1b18b2746e69 minor fixes
Jeff Hammel <jhammel@mozilla.com>
parents: 10
diff changeset
3 import tempfile
1b18b2746e69 minor fixes
Jeff Hammel <jhammel@mozilla.com>
parents: 10
diff changeset
4 import urllib2
1b18b2746e69 minor fixes
Jeff Hammel <jhammel@mozilla.com>
parents: 10
diff changeset
5
10
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
6 def require(url):
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
7 """
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
8 import a module from the web
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
9 url should be like scheme://host.name/path/to/module.py
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
10 """
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
11 contents = urllib2.urlopen(url).read()
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
12 filename = url.rsplit('/', 1)[-1]
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
13 module = filename.rsplit('.', 1)[-1]
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
14 dest = tempfile.mktemp(suffix='.py', prefix=module)
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
15 f = file(dest, 'w')
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
16 f.write(contents)
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
17 f.close()
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
18 return imp.load_source(module, dest)
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
19
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
20 # TODO: make an equivalent method for a tarball