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 os
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):
file_dir = os.path.join(base_dir, "/".join(url.split("/")[:-1]))
def download(url):
file_dir = os.path.join(base_dir, os.path.dirname(url))
if not os.path.exists(file_dir):
os.makedirs(file_dir)
file_path = os.path.join(base_dir, url.split("?")[0])
@ -22,23 +30,24 @@ def download(url, base_dir):
)
def check_download(name, version, url, arch, base_dir="deb"):
conn = sqlite3.connect(f"data/{base_dir}.db")
cur = conn.cursor()
def check_download(name, version, url, arch):
logging.info("%s:%s = %s", name, arch, version)
# connect to db
with sqlite3.connect(os.path.join("data", f"{base_dir}.db")) as conn:
cur = conn.cursor()
res = cur.execute(
"SELECT version, url FROM " + arch + " WHERE name = ?", (name,)
f"SELECT version, url FROM {arch} WHERE name = ?", (name,)
).fetchall()
if len(res):
local_version = res[0][0]
local_url = res[0][1]
print(name + ": " + local_version)
if local_version != version:
print("└ Update: " + local_version + " -> " + version)
print(f"Update: {name}:{arch} ({local_version} -> {version})")
download(url, base_dir)
# wirte to db
cur.execute(
"UPDATE " + arch + " SET version = ?, url = ? WHERE name = ?",
f"UPDATE {arch} SET version = ?, url = ? WHERE name = ?",
(version, url, name),
)
# remove old version
@ -47,17 +56,14 @@ def check_download(name, version, url, arch, base_dir="deb"):
if os.path.exists(old_file_path):
os.remove(old_file_path)
else:
print(name + "\n└ Add: " + version)
print(f"AddNew: {name}:{arch} ({version})")
download(url, base_dir)
# wirte to db
cur.execute(
"INSERT INTO " + arch + "(name, version, url) VALUES (?, ?, ?)",
f"INSERT INTO {arch}(name, version, url) VALUES (?, ?, ?)",
(name, version, url),
)
cur.close()
conn.commit()
conn.close()
if __name__ == "__main__":
@ -67,6 +73,8 @@ if __name__ == "__main__":
elif len(args) == 4:
check_download(args[1], args[2], args[3], "x86_64")
else:
if len(args) > 1:
print(f"Unknown Args: {args[1:]}\n")
print(f"Usage: {args[0]} <package_name> <version> <url> [arch]")
print("options:")
print(" arch: x86_64, arm64. default is x86_64")

23
run.sh
View File

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