diff --git a/advisors/check_upstream.py b/advisors/check_upstream.py index cea1d9125b4f2445165776ffa221c1aeefb44fd4..7845c966620aebf6cf90e23e9fca381564b0d3a7 100755 --- a/advisors/check_upstream.py +++ b/advisors/check_upstream.py @@ -270,6 +270,24 @@ def check_github(info): tags = clean_tags(tags, info) return tags +def check_gnu_ftp(info): + headers = { + 'User-Agent' : 'Mozilla/5.0 (X11; Linux x86_64)' + } + url = urljoin("https://ftp.gnu.org/gnu/", info["src_repo"] + "/") + eprint("{repo} > List ftp directory".format(repo=url)) + resp = requests.get(url, headers=headers) + resp = resp.text + re_pattern = re.compile("href=\"(.*)\">(\\1)") + tags = [] + for l in resp.splitlines(): + m = re_pattern.search(l) + if m: + tags.append(m[1]) + tags = clean_tags(tags, info) + return tags + + def check_gnome(info): resp = load_last_query_result(info) src_repos = info["src_repo"].split("/") diff --git a/advisors/oa_upgradable.py b/advisors/oa_upgradable.py index ab145bc9b35e777beee7e8e9262b0848f554aae2..8043cc0c87cafb114e808875dbabfcfc594d5028 100755 --- a/advisors/oa_upgradable.py +++ b/advisors/oa_upgradable.py @@ -76,6 +76,8 @@ def get_ver_tags(gt, repo, cwd_path=None): tags = check_upstream.check_pypi(pkg_info) elif vc_type == "gitee": tags = check_upstream.check_gitee(pkg_info) + elif vc_type == "gnu-ftp": + tags = check_upstream.check_gnu_ftp(pkg_info) else: print("Unsupport version control method {vc}".format(vc=vc_type)) return None diff --git a/upstream-info/bc.yaml b/upstream-info/bc.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ff357aa0fa4f005e96625f13bf3567b70df6fdc8 --- /dev/null +++ b/upstream-info/bc.yaml @@ -0,0 +1,4 @@ +version_control: gnu-ftp +src_repo: bc +tag_pattern: bc-(.*).tar.gz(.sig)? +seperator: "." diff --git a/upstream-info/ed.yaml b/upstream-info/ed.yaml new file mode 100644 index 0000000000000000000000000000000000000000..f70f29d6b1e5efcc28c01bc949bc5d3b4dd74d6a --- /dev/null +++ b/upstream-info/ed.yaml @@ -0,0 +1,4 @@ +version_control: gnu-ftp +src_repo: ed +tag_pattern: ed-(.*).(tar.*) +seperator: "." diff --git a/upstream-info/sharutils.yaml b/upstream-info/sharutils.yaml new file mode 100644 index 0000000000000000000000000000000000000000..cbf396310770060049b8a55bf6257965f20c3a34 --- /dev/null +++ b/upstream-info/sharutils.yaml @@ -0,0 +1,4 @@ +version_control: gnu-ftp +src_repo: sharutils +tag_pattern: sharutils-(.*).tar.gz(.sig)? +seperator: "." diff --git a/upstream-info/which.yaml b/upstream-info/which.yaml new file mode 100644 index 0000000000000000000000000000000000000000..817b615237945324e0f434858de203c9a403ea42 --- /dev/null +++ b/upstream-info/which.yaml @@ -0,0 +1,4 @@ +version_control: gnu-ftp +src_repo: which +tag_pattern: which-(.*).(tar.*) +seperator: "."