refactor: change repo path, add arm64 repo

This commit is contained in:
wcbing 2024-11-30 01:15:52 +08:00
parent 3cfb3c8a53
commit 663ae79661
5 changed files with 58 additions and 34 deletions

View File

@ -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

View File

@ -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

View File

@ -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()

View File

@ -86,15 +86,19 @@ def get_latest(deb_packages):
def process_repo(r):
try:
deb_packages = b""
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("mix_path"):
# 获取扁平 Repo 中包信息
deb_packages += get_remote_packages(r["repo"], r["mix_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
View File

@ -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