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)|
|
|mihomo|mihomo|[Github Releases](https://github.com/MetaCubeX/mihomo/releases)|
|
||||||
|hugo|hugo|[Github Releases](https://github.com/gohugoio/hugo/releases)|
|
|hugo|hugo|[Github Releases](https://github.com/gohugoio/hugo/releases)|
|
||||||
|RustDesk|rustdesk|[Github Releases](https://github.com/rustdesk/rustdesk/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)|
|
|Obsidian|obsidian|[Github Releases](https://github.com/obsidianmd/obsidian-releases/releases)|
|
||||||
|WPS Office|wps-office|[官网](https://linux.wps.cn/)|
|
|WPS Office|wps-office|[官网](https://linux.wps.cn/)|
|
||||||
|百度网盘|baidunetdisk|[官网](https://pan.baidu.com/download)|
|
|百度网盘|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
|
### 合并自官方 repo
|
||||||
|
|
||||||
|软件名|包名|渠道|架构|
|
|软件名|包名|
|
||||||
|-|-|-|-|
|
|-|-|
|
||||||
|Google Chrome|google-chrome-stable<br />google-chrome-beta<br />google-chrome-unstable|官方仓库|x86_64|
|
|Mozilla Firefox|firefox<br />firefox_beta<br />firefox_devedition<br />firefox_esr<br />firefox_nightly|
|
||||||
|termius|termius-app<br />termius-beta|官方仓库|x86_64|
|
|Google Chrome|google-chrome-stable<br />google-chrome-beta<br />google-chrome-unstable|
|
||||||
|Sublime Text<br />Sublime Merge|sublime-text<br />sublime-merge|官方仓库|x86_64, arm64|
|
|Microsoft Edge|microsoft-edge-stable<br />microsoft-edge-beta<br />microsoft-edge-dev|
|
||||||
|Mozilla Firefox|firefox<br />firefox_beta<br />firefox_devedition<br />firefox_esr<br />firefox_nightly<br />|官方仓库|x86_64|
|
|Visual Studio Code|code<br />code-insiders<br />code-exploration|
|
||||||
|Steam|steam-launcher<br />steam-libs-amd64|官方仓库|x86_64|
|
|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
|
# merge the Packages files of third-party repositories
|
||||||
cd ..
|
cd ..
|
||||||
find merge_latest -maxdepth 1 -type f -name "*.py" -exec python3 {} \;
|
./merge-apt-repo
|
||||||
python3 merge_all/merge_all.py
|
|
||||||
|
|
||||||
cd deb
|
cd deb
|
||||||
# list brief information about packages
|
# list brief information about packages
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user