diff --git a/merge-apt-repo.py b/merge-apt-repo.py index 310d8b8..5088893 100755 --- a/merge-apt-repo.py +++ b/merge-apt-repo.py @@ -111,10 +111,8 @@ def process_repo(r: dict): 获取仓库中不同架构子仓库的内容,最后调用 get_latest 去重并保存。 """ try: - deb_packages = b"" for arch, path in r["path"].items(): - deb_packages += get_remote_packages(r["repo"], path) - get_latest(deb_packages) + get_latest(get_remote_packages(r["repo"], path)) except Exception as e: logging.error(f"Error processing repo {r.get('name', 'unknown')}: {e}") @@ -152,17 +150,10 @@ if __name__ == "__main__": executor.map(process_repo, repo_list.values()) # 分别输出到不同文件 - os.makedirs("deb/amd64/", exist_ok=True) - os.makedirs("deb/arm64/", exist_ok=True) - - with open("deb/amd64/Packages", "+wb") as f: - for i in package_info["amd64"].values(): - f.write(i) - for i in package_info["all"].values(): - f.write(i) - - 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) + for arch in ["amd64", "arm64"]: + os.makedirs(f"deb/dists/wcbing/main/binary-{arch}/", exist_ok=True) + with open(f"deb/dists/wcbing/main/binary-{arch}/Packages", "+wb") as f: + for i in package_info[arch].values(): + f.write(i) + for i in package_info["all"].values(): + f.write(i) diff --git a/run.sh b/run.sh index 7f1e9a8..a9fe188 100755 --- a/run.sh +++ b/run.sh @@ -1,29 +1,31 @@ #!/bin/sh -gen_release() { - apt-ftparchive release $1 >$1/Release - gpg --yes --detach-sign -a -o $1/Release.gpg $1/Release - gpg --yes --clearsign -o $1/InRelease $1/Release -} - # check for updates ./get-github-releases.py find get -type f -name "*.sh" -exec sh {} \; +# generate the html +./gen-list-html.py + cd deb # generate the local Packages apt-ftparchive packages . > tmpPackages sed -i "s|\./\(https\?\):/|\1://|g" tmpPackages cd .. -sed -i "s|\./|\.\./|g" deb/tmpPackages cat $(find packages -name "*.package") >> deb/tmpPackages # merge the Packages files from third-party repositories ./merge-apt-repo.py --local deb/tmpPackages # generate the Release file -gen_release deb/amd64 -gen_release deb/arm64 - -# generate the html -./gen-list-html.py \ No newline at end of file +cd deb/dists/wcbing +echo 'Origin: wcbing APT Repo +Label: wcbing +Suite: wcbing +Codename: wcbing +Architectures: amd64 arm64 +Components: main +Description: wcbing APT Repo || wcbing 的 APT 仓库' > Release +apt-ftparchive release . >> Release +gpg --yes --detach-sign -a -o Release.gpg Release +gpg --yes --clearsign -o InRelease Release