summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2017-05-12 15:24:06 +0200
committerGiampaolo Rodola <g.rodola@gmail.com>2017-05-12 15:24:06 +0200
commitec6fbeb15cf5bf12352fde6ebcfbe3f74529f336 (patch)
tree6945f6c7c06354630f074a45dc45b1141e2d97bc /scripts
parent63b43b31da9c90b77258fd69be9261591cd52b70 (diff)
downloadpsutil-ec6fbeb15cf5bf12352fde6ebcfbe3f74529f336.tar.gz
check_urls.py refactoring
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/internal/check_broken_links.py33
1 files changed, 23 insertions, 10 deletions
diff --git a/scripts/internal/check_broken_links.py b/scripts/internal/check_broken_links.py
index ec492f61..3cc78ec8 100755
--- a/scripts/internal/check_broken_links.py
+++ b/scripts/internal/check_broken_links.py
@@ -60,10 +60,9 @@ REQUEST_TIMEOUT = 30
RETRY_STATUSES = [503, 401, 403]
-def get_urls(filename):
- """Extracts all URLs available in specified filename."""
- with open(filename) as fs:
- text = fs.read()
+def get_urls_rst(filename):
+ with open(filename) as f:
+ text = f.read()
urls = re.findall(REGEX, text)
# remove duplicates, list for sets are not iterable
urls = list(set(urls))
@@ -73,6 +72,14 @@ def get_urls(filename):
return urls
+def get_urls(filename):
+ """Extracts all URLs available in specified filename."""
+ if filename.endswith('.rst'):
+ return get_urls_rst(filename)
+ else:
+ return []
+
+
def validate_url(url):
"""Validate the URL by attempting an HTTP connection.
Makes an HTTP-HEAD request for each URL.
@@ -113,21 +120,24 @@ def parallel_validator(urls):
else:
if not ok:
fails.append((fname, url))
- if fails:
- print()
+
+ print()
return fails
def main():
files = sys.argv[1:]
if not files:
- return sys.exit("usage: %s <FILES...>" % __name__)
+ print("usage: %s <FILES...>" % sys.argv[0], file=sys.stderr)
+ return sys.exit(1)
all_urls = []
for fname in files:
urls = get_urls(fname)
- for url in urls:
- all_urls.append((fname, url))
+ if urls:
+ print("%4s %s" % (len(urls), fname))
+ for url in urls:
+ all_urls.append((fname, url))
fails = parallel_validator(all_urls)
if not fails:
@@ -142,4 +152,7 @@ def main():
if __name__ == '__main__':
- main()
+ try:
+ main()
+ except (KeyboardInterrupt, SystemExit):
+ os._exit(0)