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 [trusted=yes] https://packages.wcbing.top/deb/$(dpkg --print-architecture) /" > \
|
||||||
echo "deb [signed-by=/etc/apt/keyrings/wcbing.gpg] https://packages.wcbing.top/deb /" > \
|
|
||||||
/etc/apt/sources.list.d/wcbing.list
|
/etc/apt/sources.list.d/wcbing.list
|
||||||
apt update
|
apt update
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
rm /etc/apt/keyrings/wcbing.gpg
|
rm -f /etc/apt/keyrings/wcbing.gpg
|
||||||
rm /etc/apt/sources.list.d/wcbing.list
|
rm -f /etc/apt/sources.list.d/wcbing.list
|
||||||
apt update
|
apt update
|
||||||
|
|||||||
24
init_deb.py
24
init_deb.py
@ -4,8 +4,10 @@ import os
|
|||||||
import sqlite3
|
import sqlite3
|
||||||
|
|
||||||
# create dir
|
# create dir
|
||||||
if not os.path.exists("deb"):
|
if not os.path.exists("deb/amd64"):
|
||||||
os.mkdir("deb")
|
os.makedirs("deb/amd64")
|
||||||
|
if not os.path.exists("deb/arm64"):
|
||||||
|
os.makedirs("deb/arm64")
|
||||||
|
|
||||||
# create table
|
# create table
|
||||||
conn = sqlite3.connect("deb.db")
|
conn = sqlite3.connect("deb.db")
|
||||||
@ -18,15 +20,15 @@ conn.execute(
|
|||||||
);
|
);
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
# conn.execute(
|
conn.execute(
|
||||||
# """
|
"""
|
||||||
# CREATE TABLE IF NOT EXISTS arm64 (
|
CREATE TABLE IF NOT EXISTS arm64 (
|
||||||
# name TEXT UNIQUE,
|
name TEXT UNIQUE,
|
||||||
# version TEXT,
|
version TEXT,
|
||||||
# url TEXT
|
url TEXT
|
||||||
# );
|
);
|
||||||
# """
|
"""
|
||||||
# )
|
)
|
||||||
|
|
||||||
conn.commit()
|
conn.commit()
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|||||||
@ -86,15 +86,19 @@ def get_latest(deb_packages):
|
|||||||
def process_repo(r):
|
def process_repo(r):
|
||||||
try:
|
try:
|
||||||
deb_packages = b""
|
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"):
|
if r.get("mix_path"):
|
||||||
# 获取扁平 Repo 中包信息
|
# 获取扁平 Repo 中包信息
|
||||||
deb_packages += get_remote_packages(r["repo"], r["mix_path"])
|
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)
|
get_latest(deb_packages)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(f"Error processing repo {r.get('name', 'unknown')}: {e}")
|
logging.error(f"Error processing repo {r.get('name', 'unknown')}: {e}")
|
||||||
@ -111,11 +115,18 @@ def parse_arguments():
|
|||||||
default="data/repo_list.json",
|
default="data/repo_list.json",
|
||||||
help="Path to the repository list file. Default is '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()
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
args = parse_arguments()
|
args = parse_arguments()
|
||||||
|
|
||||||
|
# 处理本地 repo
|
||||||
|
if args.local:
|
||||||
|
with open(args.local) as f:
|
||||||
|
get_latest(f.read().encode())
|
||||||
|
|
||||||
repo_list = args.repo
|
repo_list = args.repo
|
||||||
repo_list = read_repo_list(repo_list)
|
repo_list = read_repo_list(repo_list)
|
||||||
if not repo_list:
|
if not repo_list:
|
||||||
@ -124,7 +135,18 @@ if __name__ == "__main__":
|
|||||||
with ThreadPoolExecutor(max_workers=10) as executor:
|
with ThreadPoolExecutor(max_workers=10) as executor:
|
||||||
executor.map(process_repo, repo_list)
|
executor.map(process_repo, repo_list)
|
||||||
|
|
||||||
# 有需要可以分别输出到不同文件
|
# 分别输出到不同文件
|
||||||
for list in package_info.values():
|
with open("deb/amd64/Packages", "+wb") as f:
|
||||||
for i in list.values():
|
for i in package_info["amd64"].values():
|
||||||
print(i.decode(), end="")
|
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
|
#!/bin/sh
|
||||||
|
|
||||||
date
|
date
|
||||||
# merge the Packages files of third-party repositories
|
|
||||||
./merge-apt-repo.py > deb/Packages
|
|
||||||
# check for updates
|
# check for updates
|
||||||
$HOME/go/bin/github-downloader -r -o deb
|
$HOME/go/bin/github-downloader -r -o deb
|
||||||
find get -maxdepth 1 -type f -name "*.sh" -exec sh {} \;
|
find get -maxdepth 1 -type f -name "*.sh" -exec sh {} \;
|
||||||
|
|
||||||
# generate the files
|
|
||||||
cd deb
|
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
|
# generate the Release file
|
||||||
|
cd deb/amd64
|
||||||
|
apt-ftparchive release . > Release
|
||||||
|
cd ../arm64
|
||||||
apt-ftparchive release . > Release
|
apt-ftparchive release . > Release
|
||||||
gpg --yes --armor --detach-sign --sign -o Release.gpg Release
|
|
||||||
gpg --yes --clearsign -o InRelease Release
|
|
||||||
|
|
||||||
echo done
|
echo done
|
||||||
Loading…
x
Reference in New Issue
Block a user