mirror of
https://github.com/wcbing/wcbing-apt-repo.git
synced 2025-12-28 18:18:31 +08:00
rewrite merge module with go
This commit is contained in:
parent
bad08a9cc8
commit
ee55153922
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
[submodule "merge"]
|
||||
path = merge
|
||||
url = https://github.com/wcbing/merge-apt-repo
|
||||
20
README.md
20
README.md
@ -35,8 +35,6 @@ echo "deb [signed-by=/etc/apt/keyrings/wcbing.gpg] https://packages.wcbing.top/d
|
||||
|mihomo|mihomo|[Github Releases](https://github.com/MetaCubeX/mihomo/releases)|
|
||||
|hugo|hugo|[Github Releases](https://github.com/gohugoio/hugo/releases)|
|
||||
|RustDesk|rustdesk|[Github Releases](https://github.com/rustdesk/rustdesk/releases)|
|
||||
|Visual Studio Code|code|[官网](https://code.visualstudio.com)|
|
||||
|Microsoft Edge|microsoft-edge-stable|[官网](https://www.microsoft.com/en-us/edge/download)|
|
||||
|Obsidian|obsidian|[Github Releases](https://github.com/obsidianmd/obsidian-releases/releases)|
|
||||
|WPS Office|wps-office|[官网](https://linux.wps.cn/)|
|
||||
|百度网盘|baidunetdisk|[官网](https://pan.baidu.com/download)|
|
||||
@ -49,13 +47,17 @@ echo "deb [signed-by=/etc/apt/keyrings/wcbing.gpg] https://packages.wcbing.top/d
|
||||
|
||||
### 合并自官方 repo
|
||||
|
||||
|软件名|包名|渠道|架构|
|
||||
|-|-|-|-|
|
||||
|Google Chrome|google-chrome-stable<br />google-chrome-beta<br />google-chrome-unstable|官方仓库|x86_64|
|
||||
|termius|termius-app<br />termius-beta|官方仓库|x86_64|
|
||||
|Sublime Text<br />Sublime Merge|sublime-text<br />sublime-merge|官方仓库|x86_64, arm64|
|
||||
|Mozilla Firefox|firefox<br />firefox_beta<br />firefox_devedition<br />firefox_esr<br />firefox_nightly<br />|官方仓库|x86_64|
|
||||
|Steam|steam-launcher<br />steam-libs-amd64|官方仓库|x86_64|
|
||||
|软件名|包名|
|
||||
|-|-|
|
||||
|Mozilla Firefox|firefox<br />firefox_beta<br />firefox_devedition<br />firefox_esr<br />firefox_nightly|
|
||||
|Google Chrome|google-chrome-stable<br />google-chrome-beta<br />google-chrome-unstable|
|
||||
|Microsoft Edge|microsoft-edge-stable<br />microsoft-edge-beta<br />microsoft-edge-dev|
|
||||
|Visual Studio Code|code<br />code-insiders<br />code-exploration|
|
||||
|termius|termius-app<br />termius-beta|
|
||||
|Sublime Text<br />Sublime Merge|sublime-text<br />sublime-merge|
|
||||
|Steam|steam-launcher<br />steam-libs-amd64|
|
||||
|Tailscale|tailscale<br />tailscale-nginx-auth|
|
||||
|
||||
|
||||
## 自建仓库
|
||||
|
||||
|
||||
5
data/config.json
Normal file
5
data/config.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"packages_https": "deb/Packages",
|
||||
"merge_all_https": "data/merge_all_https.json",
|
||||
"merge_latest_https": "data/merge_latest_https.json"
|
||||
}
|
||||
27
data/merge_latest_https.json
Normal file
27
data/merge_latest_https.json
Normal file
@ -0,0 +1,27 @@
|
||||
[
|
||||
{
|
||||
"name": "firefox",
|
||||
"repo": "https://packages.mozilla.org/apt/",
|
||||
"amd64_path": "dists/mozilla/main/binary-amd64/Packages"
|
||||
},
|
||||
{
|
||||
"name": "microsoft-edge",
|
||||
"repo": "https://packages.microsoft.com/repos/edge/",
|
||||
"amd64_path": "dists/stable/main/binary-amd64/Packages"
|
||||
},
|
||||
{
|
||||
"name": "code",
|
||||
"repo": "https://packages.microsoft.com/repos/code/",
|
||||
"amd64_path": "dists/stable/main/binary-amd64/Packages"
|
||||
},
|
||||
{
|
||||
"name": "tailscale",
|
||||
"repo": "https://pkgs.tailscale.com/stable/debian/",
|
||||
"amd64_path": "dists/sid/main/binary-amd64/Packages"
|
||||
},
|
||||
{
|
||||
"name": "sublime",
|
||||
"repo": "https://download.sublimetext.com/",
|
||||
"amd64_path": "apt/stable/Packages"
|
||||
}
|
||||
]
|
||||
12
get/code.py
12
get/code.py
@ -1,12 +0,0 @@
|
||||
import requests
|
||||
import re
|
||||
from module.check import deb
|
||||
|
||||
x64_deb_req = "https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64"
|
||||
|
||||
res = requests.head(x64_deb_req)
|
||||
version = re.findall("_(.*)-", res.headers["Location"])[0]
|
||||
x64_deb_url = res.headers["Location"]
|
||||
# print(version, x64_deb_url)
|
||||
|
||||
deb("code", version, x64_deb_url)
|
||||
@ -1,12 +0,0 @@
|
||||
import requests
|
||||
import re
|
||||
from module.check import deb
|
||||
|
||||
x64_deb_url = "https://go.microsoft.com/fwlink?linkid=2149051"
|
||||
|
||||
res = requests.head(x64_deb_url)
|
||||
version = re.findall("_(.*)_", res.headers["Location"])[0]
|
||||
x64_deb_url = res.headers["Location"]
|
||||
# print(version, x64_deb_url)
|
||||
|
||||
deb("microsoft-edge-stable", version, x64_deb_url)
|
||||
@ -1,40 +0,0 @@
|
||||
import requests
|
||||
import json
|
||||
|
||||
|
||||
"""
|
||||
Merge all deb packages info from repos to a Packages file.
|
||||
These repos only include the latest deb packages.
|
||||
"""
|
||||
|
||||
repo_info_list = []
|
||||
amd64_Packages_all = ""
|
||||
|
||||
# read all repo info from json file
|
||||
with open("merge_all/repo_info.json", "r") as all_repo_info:
|
||||
repo_info_list = json.loads(all_repo_info.read())
|
||||
all_repo_info.close()
|
||||
|
||||
"""
|
||||
repo info json format:
|
||||
{
|
||||
"name": repo name
|
||||
"repo": repo url, end with "/"
|
||||
"Packages_path": repo Packages file path, start with no "/"
|
||||
}
|
||||
"""
|
||||
|
||||
# get deb packages info from repo
|
||||
for i in repo_info_list:
|
||||
# get amd64 deb packages info
|
||||
if "amd64_path" in i:
|
||||
amd64_Packages_info = requests.get(i["repo"] + i["amd64_path"]).text
|
||||
amd64_Packages_all += amd64_Packages_info.replace(
|
||||
"Filename: ", "Filename: " + i["repo"]
|
||||
)
|
||||
print(i["name"] + " x64 repo: done")
|
||||
|
||||
# write deb packages info to local Packages file
|
||||
with open("deb/Packages", "a+") as f:
|
||||
f.write(amd64_Packages_all)
|
||||
f.close()
|
||||
@ -1,40 +0,0 @@
|
||||
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)
|
||||
@ -1,14 +0,0 @@
|
||||
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")
|
||||
@ -1,30 +0,0 @@
|
||||
import requests
|
||||
import re
|
||||
from module.merge_deb import merge_latest_deb
|
||||
|
||||
deb_repo = "https://download.sublimetext.com/"
|
||||
|
||||
deb_Packages_url = deb_repo + "apt/stable/Packages"
|
||||
deb_Packages = requests.get(deb_Packages_url).text
|
||||
debs = re.split("(?=Package: )", deb_Packages)[1:]
|
||||
# print(debs)
|
||||
|
||||
# sublime 的 Packages 按照版本升序排列,倒数两个为 amd64 和 arm64 最新版本
|
||||
|
||||
sublime_text_debs = []
|
||||
sublime_merge_debs = []
|
||||
|
||||
for deb in debs:
|
||||
if "Package: sublime-text\n" in deb:
|
||||
sublime_text_debs.append(deb)
|
||||
elif "Package: sublime-merge\n" in deb:
|
||||
sublime_merge_debs.append(deb)
|
||||
|
||||
deb_latest = (
|
||||
sublime_text_debs[-2]
|
||||
+ sublime_text_debs[-1]
|
||||
+ sublime_merge_debs[-2]
|
||||
+ sublime_merge_debs[-1]
|
||||
)
|
||||
|
||||
merge_latest_deb("sublime", deb_repo, deb_latest)
|
||||
@ -10,8 +10,7 @@ apt-ftparchive packages . > Packages
|
||||
|
||||
# merge the Packages files of third-party repositories
|
||||
cd ..
|
||||
find merge_latest -maxdepth 1 -type f -name "*.py" -exec python3 {} \;
|
||||
python3 merge_all/merge_all.py
|
||||
./merge-apt-repo
|
||||
|
||||
cd deb
|
||||
# list brief information about packages
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user