Mercurial > hg > config
comparison bin/wgrep.py @ 0:f3ab51c79813
adding configuration from https://svn.openplans.org/svn/config_jhammel/
author | k0s <k0scist@gmail.com> |
---|---|
date | Thu, 15 Oct 2009 11:41:26 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:f3ab51c79813 |
---|---|
1 #!/usr/bin/env python | |
2 | |
3 import sys | |
4 import urlparse | |
5 import urllib2 | |
6 import tempfile | |
7 import shutil | |
8 import subprocess | |
9 | |
10 def usage(): | |
11 print 'Usage: %s <url> <pattern>' % sys.argv[0] | |
12 sys.exit(0) | |
13 | |
14 def geturl(origurl): | |
15 # get the url | |
16 url = urlparse.urlsplit(origurl) | |
17 if not url[0]: | |
18 url = urlparse.urlsplit('http://%s' % origurl) | |
19 return url | |
20 | |
21 if __name__ == '__main__': | |
22 if len(sys.argv[1:]) != 2: | |
23 usage() | |
24 urlparts = geturl(sys.argv[1]) | |
25 url = urlparse.urlunsplit(urlparts) | |
26 | |
27 # ensure the url is openable | |
28 try: | |
29 u = urllib2.urlopen(url) | |
30 except urllib2.HTTPError, e: | |
31 print '%s\n%s' % (url, e) | |
32 sys.exit(1) | |
33 | |
34 thedir = tempfile.mkdtemp() | |
35 | |
36 # wget the files | |
37 wget = subprocess.Popen(['wget', '-r', '-l0', | |
38 '--no-parent', | |
39 '--no-check-certificate', | |
40 '-P', thedir, | |
41 u.url], | |
42 stdout = subprocess.PIPE, | |
43 stderr = subprocess.PIPE, | |
44 ) | |
45 out, err = wget.communicate() | |
46 code = wget.returncode | |
47 if code: | |
48 sys.exit(code) | |
49 | |
50 # do da grep | |
51 grep = subprocess.Popen(['grep', '-r', '-l', | |
52 sys.argv[2], | |
53 thedir], | |
54 stdout = subprocess.PIPE, | |
55 stderr = subprocess.PIPE, | |
56 ) | |
57 out, err = grep.communicate() | |
58 for i in out.split('\n'): | |
59 print i.replace('%s/' % thedir, '%s://' % urlparts[0], 1) | |
60 | |
61 destructive = True | |
62 if destructive: | |
63 shutil.rmtree(thedir) | |
64 else: | |
65 print thedir |