diff options
author | rsiddharth <s@ricketyspace.net> | 2016-11-01 22:57:56 +0000 |
---|---|---|
committer | rsiddharth <s@ricketyspace.net> | 2016-11-01 22:57:56 +0000 |
commit | f209589c0fe62a9206a5930b7835cb4be357ba6d (patch) | |
tree | 8321d51941417403adf64875aa53c52b6e648c9b /gd_diff.py | |
parent | 9031933d0ccac9c9732b40b53e7f03eb51fcaafe (diff) |
Add `get_packages` function.
* gd_diff.py (get_packages): New function
* setup.py: Add `beautifulsoup4` and `requests` as installation
requirements; Add `mock` as dev requirements.
* tests/test_gd_diff.py (test_get_packages_error)
(test_get_packages): New functions
Diffstat (limited to 'gd_diff.py')
-rw-r--r-- | gd_diff.py | 28 |
1 files changed, 28 insertions, 0 deletions
@@ -11,9 +11,12 @@ import re import shlex import sys +import requests + from os import path from subprocess import run, PIPE +from bs4 import BeautifulSoup # list of recognized fields. field_list = [ @@ -68,6 +71,31 @@ def read_packages(pkgs_file): return pkgs_iter +def get_packages(release): + """Prints out list packages for `release`. + + List of packages is slurped from + http://bzr.savannah.gnu.org/lh/gnewsense/packages-`release` + """ + url = 'http://bzr.savannah.gnu.org/lh/gnewsense/packages-{}/' + req = url.format(release) + + try: + res = requests.get(req) + except ConnectionError as ce: + print('ERROR: Problem GETting {} \n{}'.format(req, ce)) + sys.exit(1) + + if res.status_code != 200: + print('{}: Error GETting {}'.format(res.status_code, req)) + sys.exit(1) + + html_forest = BeautifulSoup(res.text, 'html.parser') + + for td in html_forest.find_all('td', class_='autcell'): + print(td.a.string.strip()) + + def save_gns_readme(content, release, pkg, local_dir): """Save README.gNewsense locally. |