summaryrefslogtreecommitdiffstats
path: root/gd_diff.py
diff options
context:
space:
mode:
authorrsiddharth <s@ricketyspace.net>2016-11-01 22:57:56 +0000
committerrsiddharth <s@ricketyspace.net>2016-11-01 22:57:56 +0000
commitf209589c0fe62a9206a5930b7835cb4be357ba6d (patch)
tree8321d51941417403adf64875aa53c52b6e648c9b /gd_diff.py
parent9031933d0ccac9c9732b40b53e7f03eb51fcaafe (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.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/gd_diff.py b/gd_diff.py
index 6e18cb5..b628b38 100644
--- a/gd_diff.py
+++ b/gd_diff.py
@@ -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.