mirror of
https://github.com/wcbing/wcbing-apt-repo.git
synced 2025-12-28 18:18:31 +08:00
refactor: change repo path, add arm64 repo
This commit is contained in:
parent
3cfb3c8a53
commit
663ae79661
@ -1,4 +1,3 @@
|
||||
curl -fsSLo /etc/apt/keyrings/wcbing.gpg https://packages.wcbing.top/wcbing.gpg
|
||||
echo "deb [signed-by=/etc/apt/keyrings/wcbing.gpg] https://packages.wcbing.top/deb /" > \
|
||||
echo "deb [trusted=yes] https://packages.wcbing.top/deb/$(dpkg --print-architecture) /" > \
|
||||
/etc/apt/sources.list.d/wcbing.list
|
||||
apt update
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
rm /etc/apt/keyrings/wcbing.gpg
|
||||
rm /etc/apt/sources.list.d/wcbing.list
|
||||
rm -f /etc/apt/keyrings/wcbing.gpg
|
||||
rm -f /etc/apt/sources.list.d/wcbing.list
|
||||
apt update
|
||||
|
||||
24
init_deb.py
24
init_deb.py
@ -4,8 +4,10 @@ import os
|
||||
import sqlite3
|
||||
|
||||
# create dir
|
||||
if not os.path.exists("deb"):
|
||||
os.mkdir("deb")
|
||||
if not os.path.exists("deb/amd64"):
|
||||
os.makedirs("deb/amd64")
|
||||
if not os.path.exists("deb/arm64"):
|
||||
os.makedirs("deb/arm64")
|
||||
|
||||
# create table
|
||||
conn = sqlite3.connect("deb.db")
|
||||
@ -18,15 +20,15 @@ conn.execute(
|
||||
);
|
||||
"""
|
||||
)
|
||||
# conn.execute(
|
||||
# """
|
||||
# CREATE TABLE IF NOT EXISTS arm64 (
|
||||
# name TEXT UNIQUE,
|
||||
# version TEXT,
|
||||
# url TEXT
|
||||
# );
|
||||
# """
|
||||
# )
|
||||
conn.execute(
|
||||
"""
|
||||
CREATE TABLE IF NOT EXISTS arm64 (
|
||||
name TEXT UNIQUE,
|
||||
version TEXT,
|
||||
url TEXT
|
||||
);
|
||||
"""
|
||||
)
|
||||
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
@ -86,15 +86,19 @@ def get_latest(deb_packages):
|
||||
def process_repo(r):
|
||||
try:
|
||||
deb_packages = b""
|
||||
if r.get("amd64_path"):
|
||||
# 获取 Repo 中 Amd64 包信息
|
||||
deb_packages += get_remote_packages(r["repo"], r["amd64_path"])
|
||||
if r.get("arm64_path"):
|
||||
# 获取 Repo 中 Arm64 包信息
|
||||
deb_packages += get_remote_packages(r["repo"], r["arm64_path"])
|
||||
if r.get("mix_path"):
|
||||
# 获取扁平 Repo 中包信息
|
||||
deb_packages += get_remote_packages(r["repo"], r["mix_path"])
|
||||
else:
|
||||
if r.get("amd64_path"):
|
||||
# 获取 Repo 中 Amd64 包信息
|
||||
deb_packages += get_remote_packages(r["repo"], r["amd64_path"])
|
||||
if r.get("arm64_path"):
|
||||
# 获取 Repo 中 Arm64 包信息
|
||||
deb_packages += get_remote_packages(r["repo"], r["arm64_path"])
|
||||
if r.get("all_path"):
|
||||
# 获取 Repo 中 All 包信息
|
||||
deb_packages += get_remote_packages(r["repo"], r["all_path"])
|
||||
get_latest(deb_packages)
|
||||
except Exception as e:
|
||||
logging.error(f"Error processing repo {r.get('name', 'unknown')}: {e}")
|
||||
@ -111,11 +115,18 @@ def parse_arguments():
|
||||
default="data/repo_list.json",
|
||||
help="Path to the repository list file. Default is 'data/repo_list.json'.",
|
||||
)
|
||||
parser.add_argument("--local", type=str, help="Process Packages in local repo")
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
args = parse_arguments()
|
||||
|
||||
# 处理本地 repo
|
||||
if args.local:
|
||||
with open(args.local) as f:
|
||||
get_latest(f.read().encode())
|
||||
|
||||
repo_list = args.repo
|
||||
repo_list = read_repo_list(repo_list)
|
||||
if not repo_list:
|
||||
@ -124,7 +135,18 @@ if __name__ == "__main__":
|
||||
with ThreadPoolExecutor(max_workers=10) as executor:
|
||||
executor.map(process_repo, repo_list)
|
||||
|
||||
# 有需要可以分别输出到不同文件
|
||||
for list in package_info.values():
|
||||
for i in list.values():
|
||||
print(i.decode(), end="")
|
||||
# 分别输出到不同文件
|
||||
with open("deb/amd64/Packages", "+wb") as f:
|
||||
for i in package_info["amd64"].values():
|
||||
f.write(i)
|
||||
for i in package_info["i386"].values():
|
||||
f.write(i)
|
||||
for i in package_info["all"].values():
|
||||
f.write(i)
|
||||
f.close
|
||||
with open("deb/arm64/Packages", "+wb") as f:
|
||||
for i in package_info["arm64"].values():
|
||||
f.write(i)
|
||||
for i in package_info["all"].values():
|
||||
f.write(i)
|
||||
f.close
|
||||
|
||||
19
run.sh
19
run.sh
@ -1,21 +1,22 @@
|
||||
#!/bin/sh
|
||||
|
||||
date
|
||||
# merge the Packages files of third-party repositories
|
||||
./merge-apt-repo.py > deb/Packages
|
||||
# check for updates
|
||||
$HOME/go/bin/github-downloader -r -o deb
|
||||
find get -maxdepth 1 -type f -name "*.sh" -exec sh {} \;
|
||||
|
||||
# generate the files
|
||||
cd deb
|
||||
apt-ftparchive packages . >> Packages
|
||||
# generate the local Packages
|
||||
apt-ftparchive packages . > tempPackages
|
||||
cd ..
|
||||
|
||||
sed -i "s/\.\//\.\.\//g" deb/tmpPackages
|
||||
# merge the Packages files of third-party repositories
|
||||
./merge-apt-repo.py --local deb/tmpPackages
|
||||
|
||||
# list brief information about packages
|
||||
cat Packages | grep "Package\|Version\|Architecture\|^\$" > version.txt
|
||||
# generate the Release file
|
||||
cd deb/amd64
|
||||
apt-ftparchive release . > Release
|
||||
cd ../arm64
|
||||
apt-ftparchive release . > Release
|
||||
gpg --yes --armor --detach-sign --sign -o Release.gpg Release
|
||||
gpg --yes --clearsign -o InRelease Release
|
||||
|
||||
echo done
|
||||
Loading…
x
Reference in New Issue
Block a user