refactor: logs and output

This commit is contained in:
wcbing 2024-12-27 17:45:03 +08:00
parent 308b51ddef
commit 072212639d
2 changed files with 53 additions and 44 deletions

View File

@ -2,10 +2,18 @@
import subprocess import subprocess
import os import os
import sqlite3 import sqlite3
import logging
base_dir = "deb"
logging.basicConfig(
format="%(asctime)s %(message)s",
datefmt="%Y/%m/%d %H:%M:%S",
level=logging.INFO,
)
def download(url, base_dir): def download(url):
file_dir = os.path.join(base_dir, "/".join(url.split("/")[:-1])) file_dir = os.path.join(base_dir, os.path.dirname(url))
if not os.path.exists(file_dir): if not os.path.exists(file_dir):
os.makedirs(file_dir) os.makedirs(file_dir)
file_path = os.path.join(base_dir, url.split("?")[0]) file_path = os.path.join(base_dir, url.split("?")[0])
@ -22,42 +30,40 @@ def download(url, base_dir):
) )
def check_download(name, version, url, arch, base_dir="deb"): def check_download(name, version, url, arch):
conn = sqlite3.connect(f"data/{base_dir}.db") logging.info("%s:%s = %s", name, arch, version)
cur = conn.cursor()
res = cur.execute( # connect to db
"SELECT version, url FROM " + arch + " WHERE name = ?", (name,) with sqlite3.connect(os.path.join("data", f"{base_dir}.db")) as conn:
).fetchall() cur = conn.cursor()
if len(res): res = cur.execute(
local_version = res[0][0] f"SELECT version, url FROM {arch} WHERE name = ?", (name,)
local_url = res[0][1] ).fetchall()
print(name + ": " + local_version) if len(res):
if local_version != version: local_version = res[0][0]
print("└ Update: " + local_version + " -> " + version) local_url = res[0][1]
if local_version != version:
print(f"Update: {name}:{arch} ({local_version} -> {version})")
download(url, base_dir)
# wirte to db
cur.execute(
f"UPDATE {arch} SET version = ?, url = ? WHERE name = ?",
(version, url, name),
)
# remove old version
if local_url != url: # 针对固定下载链接
old_file_path = os.path.join(base_dir, local_url.split("?")[0])
if os.path.exists(old_file_path):
os.remove(old_file_path)
else:
print(f"AddNew: {name}:{arch} ({version})")
download(url, base_dir) download(url, base_dir)
# wirte to db # wirte to db
cur.execute( cur.execute(
"UPDATE " + arch + " SET version = ?, url = ? WHERE name = ?", f"INSERT INTO {arch}(name, version, url) VALUES (?, ?, ?)",
(version, url, name), (name, version, url),
) )
# remove old version conn.commit()
if local_url != url: # 针对固定下载链接
old_file_path = os.path.join(base_dir, local_url.split("?")[0])
if os.path.exists(old_file_path):
os.remove(old_file_path)
else:
print(name + "\n└ Add: " + version)
download(url, base_dir)
# wirte to db
cur.execute(
"INSERT INTO " + arch + "(name, version, url) VALUES (?, ?, ?)",
(name, version, url),
)
cur.close()
conn.commit()
conn.close()
if __name__ == "__main__": if __name__ == "__main__":
@ -67,6 +73,8 @@ if __name__ == "__main__":
elif len(args) == 4: elif len(args) == 4:
check_download(args[1], args[2], args[3], "x86_64") check_download(args[1], args[2], args[3], "x86_64")
else: else:
if len(args) > 1:
print(f"Unknown Args: {args[1:]}\n")
print(f"Usage: {args[0]} <package_name> <version> <url> [arch]") print(f"Usage: {args[0]} <package_name> <version> <url> [arch]")
print("options:") print("options:")
print(" arch: x86_64, arm64. default is x86_64") print(" arch: x86_64, arm64. default is x86_64")

23
run.sh
View File

@ -1,22 +1,23 @@
#!/bin/sh #!/bin/sh
date gen_release() {
apt-ftparchive release $1 >$1/Release
}
# 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 -type f -name "*.sh" -exec sh {} \;
cd deb cd deb
# generate the local Packages # generate the local Packages
apt-ftparchive packages . > tmpPackages apt-ftparchive packages . > tmpPackages
cd .. sed -i "s|\./http|http|g" tmpPackages
sed -i "s/\.\/http/\.\.\/http/g" deb/tmpPackages cd ..
# merge the Packages files of third-party repositories sed -i "s|\./wtf|\.\./wtf|g" deb/tmpPackages
# merge the Packages files from third-party repositories
./merge-apt-repo.py --local deb/tmpPackages ./merge-apt-repo.py --local deb/tmpPackages
# generate the Release file # generate the Release file
cd deb/amd64 gen_release deb/amd64
apt-ftparchive release . > Release gen_release deb/amd64
cd ../arm64
apt-ftparchive release . > Release
echo done