diff --git a/README.md b/README.md index 85e997c..38afcb9 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,7 @@ echo "deb [signed-by=/etc/apt/keyrings/wcbing.gpg] https://packages.wcbing.top/d |termius|termius-app
termius-beta|官方仓库| |Sublime Text|sublime-text|[官网](https://www.sublimetext.com/download)| |Xmind|xmind-vana|[官网](https://xmind.cn/download/)| +|Mozilla Firefox|firefox
firefox_beta
firefox_devedition
firefox_esr
firefox_nightly
|官方仓库| ## 自行建立仓库 diff --git a/merge_latest/firefox.py b/merge_latest/firefox.py new file mode 100644 index 0000000..f1c3542 --- /dev/null +++ b/merge_latest/firefox.py @@ -0,0 +1,40 @@ +import requests +import re +from module.merge_deb import merge_latest_deb + +deb_repo = "https://packages.mozilla.org/apt/" + +x64_deb_Packages_path = "dists/mozilla/main/binary-amd64/Packages" +x64_deb_Packages = requests.get(deb_repo + x64_deb_Packages_path).text +x64_debs = re.split("(?=Package: )", x64_deb_Packages)[1:] + +# firefox 的 Packages 按照版本升序排列,最后一个即为最新版本 + +firefox_x64_debs = [] +firefox_beta_x64_debs = [] +firefox_devedition_x64_debs = [] +firefox_esr_x64_debs = [] +firefox_nightly_x64_debs = [] + +for x64_deb in x64_debs: + if "Package: firefox\n" in x64_deb: + firefox_x64_debs.append(x64_deb) + elif "Package: firefox-beta\n" in x64_deb: + firefox_beta_x64_debs.append(x64_deb) + elif "Package: firefox-devedition\n" in x64_deb: + firefox_devedition_x64_debs.append(x64_deb) + elif "Package: firefox-esr\n" in x64_deb: + firefox_esr_x64_debs.append(x64_deb) + elif "Package: firefox-nightly\n" in x64_deb: + firefox_nightly_x64_debs.append(x64_deb) + +x64_deb_latest = ( + firefox_x64_debs[-1] + + firefox_beta_x64_debs[-1] + + firefox_devedition_x64_debs[-1] + + firefox_esr_x64_debs[-1] + + firefox_nightly_x64_debs[-1] + + "\n" +) + +merge_latest_deb("firefox", deb_repo, x64_deb_latest) diff --git a/merge_latest/module/merge_deb.py b/merge_latest/module/merge_deb.py new file mode 100644 index 0000000..013b076 --- /dev/null +++ b/merge_latest/module/merge_deb.py @@ -0,0 +1,14 @@ +def merge_latest_deb(name, repo, deb_latest, local_Packages_path="deb/Packages"): + r"""Merge latest deb packages info from a repo to a Packages file + + :param name: repo name + :param repo: repo url, end with "/" + :param deb_latest: latest deb package info manually organized + :param local_Packages_path: local Packages file path, default is "deb/Packages" + :return: None + """ + + with open(local_Packages_path, "a+") as f: + f.write(deb_latest.replace("Filename: ", "Filename: " + repo)) + f.close() + print(name + " repo: done") diff --git a/update_gen.sh b/update_gen.sh index 1f7297a..29f6570 100755 --- a/update_gen.sh +++ b/update_gen.sh @@ -10,7 +10,8 @@ apt-ftparchive packages . > Packages # merge the Packages files of third-party repositories cd .. -find merge -maxdepth 1 -type f -name "*.py" -exec python3 {} \; +find merge_latest -maxdepth 1 -type f -name "*.py" -exec python3 {} \; +python3 merge_all/merge_all.py # generate the Release file cd deb