This commit is contained in:
2025-11-27 03:09:03 -06:00
parent d05a462c4d
commit e78a8976e9
10 changed files with 422 additions and 24 deletions

48
main.py
View File

@@ -1,37 +1,51 @@
import os
import configparser
import requests
import logger
from package import pkg
# Local Variables
## Application State
_state = "test"
## Autopkg Environment Setup
_target = os.getenv("APKG_TARGET")
if _state == "prod":
if _target == "prod":
datafile = "/etc/autopkg/data.ini"
elif _state == "test":
datafile = "data.ini"
logfile = "/var/log/autopkg.log"
elif _target == "test":
datafile = "test/data.ini"
logfile = "test/autopkg.log"
else:
logger.log("APKG_TARGET not defined", 50)
exit()
## Apps to be packaged
## Setup Config
data = configparser.ConfigParser()
data.read(datafile)
if "Versions" not in data: ## Setup file if not present
data["Versions"] = {}
## Autopkg Apps
apps = {
"bitcoinknots": "https://api.github.com/repos/bitcoinknots/bitcoin/releases/latest",
"electrs": "https://api.github.com/repos/romanz/electrs/releases/latest"
}
# Setup data file
data = configparser.ConfigParser()
data.read(datafile)
## Setup file if not present
if "Versions" not in data:
data["Versions"] = {}
# Main Application
if __name__ == "__main__":
logger.log("Running Autopkg (c) 2025 phantom <phantom@shadeouts.net> https://shadeouts.net/")
# Handle apps (get versions)
for app, url in apps.items():
ini_version = data["Versions"][app] # Version previously packaged from data.ini
response = requests.get(url)
# Parse through JSON data
@@ -39,10 +53,12 @@ if __name__ == "__main__":
json = response.json()
version = json["id"]
data["Versions"][app] = str(version)
ini_version = str(version)
# Package new versions if available
if version != data["Versions"][app]:
if version != ini_version:
logger.log(f"Found new version ({version}) for {app}, packaging..")
pkg(app, version)
# Write changes