1
1
#!/usr/bin/env python
2
2
import argparse
3
3
import os .path
4
+ import urllib
4
5
5
6
import BeautifulSoup
6
7
import requests
@@ -40,7 +41,7 @@ def make_fname(p):
40
41
return parts [0 ] + "." + parts [1 ]
41
42
42
43
43
- def get (query , outdir , listonly = False ):
44
+ def get (query , relative , outdir , listonly = False ):
44
45
page = 1
45
46
while 1 :
46
47
params = dict (
@@ -54,6 +55,8 @@ def get(query, outdir, listonly=False):
54
55
break
55
56
for u in extract (r .content ):
56
57
ru = raw_url (u )
58
+ if relative :
59
+ ru = urllib .basejoin (ru , relative )
57
60
if listonly :
58
61
print ru
59
62
else :
@@ -83,11 +86,15 @@ def get(query, outdir, listonly=False):
83
86
"-o" , type = str , default = "." ,
84
87
help = "Output directory. Created if it doesn't exist."
85
88
)
89
+ parser .add_argument (
90
+ "-r" , type = str , default = None ,
91
+ help = "Grab a path relative to the match"
92
+ )
86
93
parser .add_argument ("query" , type = str , help = "Github Code Search query" )
87
94
args = parser .parse_args ()
88
95
if not os .path .exists (args .o ):
89
96
os .makedirs (args .o )
90
97
try :
91
- get (args .query , args .o , listonly = args .l )
98
+ get (args .query , args .r , args . o , listonly = args .l )
92
99
except KeyboardInterrupt :
93
100
pass
0 commit comments