mirror of
https://github.com/wcbing/wcbing-apt-repo.git
synced 2025-12-29 02:28:30 +08:00
refactor: logs and output
This commit is contained in:
parent
308b51ddef
commit
072212639d
@ -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,23 +30,24 @@ 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()
|
|
||||||
|
|
||||||
|
# connect to db
|
||||||
|
with sqlite3.connect(os.path.join("data", f"{base_dir}.db")) as conn:
|
||||||
|
cur = conn.cursor()
|
||||||
res = cur.execute(
|
res = cur.execute(
|
||||||
"SELECT version, url FROM " + arch + " WHERE name = ?", (name,)
|
f"SELECT version, url FROM {arch} WHERE name = ?", (name,)
|
||||||
).fetchall()
|
).fetchall()
|
||||||
if len(res):
|
if len(res):
|
||||||
local_version = res[0][0]
|
local_version = res[0][0]
|
||||||
local_url = res[0][1]
|
local_url = res[0][1]
|
||||||
print(name + ": " + local_version)
|
|
||||||
if local_version != version:
|
if local_version != version:
|
||||||
print("└ Update: " + local_version + " -> " + version)
|
print(f"Update: {name}:{arch} ({local_version} -> {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"UPDATE {arch} SET version = ?, url = ? WHERE name = ?",
|
||||||
(version, url, name),
|
(version, url, name),
|
||||||
)
|
)
|
||||||
# remove old version
|
# remove old version
|
||||||
@ -47,17 +56,14 @@ def check_download(name, version, url, arch, base_dir="deb"):
|
|||||||
if os.path.exists(old_file_path):
|
if os.path.exists(old_file_path):
|
||||||
os.remove(old_file_path)
|
os.remove(old_file_path)
|
||||||
else:
|
else:
|
||||||
print(name + "\n└ Add: " + version)
|
print(f"AddNew: {name}:{arch} ({version})")
|
||||||
download(url, base_dir)
|
download(url, base_dir)
|
||||||
# wirte to db
|
# wirte to db
|
||||||
cur.execute(
|
cur.execute(
|
||||||
"INSERT INTO " + arch + "(name, version, url) VALUES (?, ?, ?)",
|
f"INSERT INTO {arch}(name, version, url) VALUES (?, ?, ?)",
|
||||||
(name, version, url),
|
(name, version, url),
|
||||||
)
|
)
|
||||||
|
|
||||||
cur.close()
|
|
||||||
conn.commit()
|
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
23
run.sh
@ -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
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user