Mercurial > python-cmd2
diff cmd2.py @ 223:1702ce785a8d
trying @http://
author | catherine@Elli.myhome.westell.com |
---|---|
date | Thu, 19 Mar 2009 05:55:15 -0400 |
parents | 9aa1f34455b4 |
children | 0a7e97f79a60 |
line wrap: on
line diff
--- a/cmd2.py Thu Mar 19 00:01:06 2009 -0400 +++ b/cmd2.py Thu Mar 19 05:55:15 2009 -0400 @@ -26,7 +26,7 @@ flagReader.py options are still supported for backward compatibility """ import cmd, re, os, sys, optparse, subprocess, tempfile, pyparsing, doctest -import unittest, string, datetime +import unittest, string, datetime, urllib from optparse import make_option __version__ = '0.4.8' @@ -873,24 +873,32 @@ except Exception, e: print 'Error saving %s: %s' % (fname, str(e)) - def do_load(self, fname=None): + urlre = re.compile('(https?://[-\\w\\./]+)') + def do_load(self, fname=None): """Runs command(s) from a file.""" if fname is None: fname = self.default_file_name - fname = os.path.expanduser(fname) - keepstate = Statekeeper(self, ('stdin','use_rawinput','prompt','continuation_prompt')) - if isinstance(fname, file): - self.stdin = fname - else: - try: - self.stdin = open(os.path.expanduser(fname), 'r') - except IOError, e: - try: - self.stdin = open('%s.%s' % (os.path.expanduser(fname), self.defaultExtension), 'r') - except IOError: - print 'Problem opening file %s: \n%s' % (fname, e) - keepstate.restore() - return + #keepstate = Statekeeper(self, ('stdin','use_rawinput','prompt','continuation_prompt')) + keepstate = Statekeeper(self, ('stdin','use_rawinput','continuation_prompt')) + try: + if isinstance(fname, file): + target = open(fname, 'r') + else: + match = self.urlre.match(fname) + if match: + target = urllib.urlopen(match.group(1)) + else: + fname = os.path.expanduser(fname) + try: + target = open(os.path.expanduser(fname), 'r') + except IOError, e: + target = open('%s.%s' % (os.path.expanduser(fname), + self.defaultExtension), 'r') + except IOError, e: + print 'Problem opening file %s: \n%s' % (fname, e) + keepstate.restore() + return + self.stdin = target self.use_rawinput = False self.prompt = self.continuation_prompt = '' stop = self.cmdloop()