import os import configparser import requests import logger from package import pkg # Local Variables ## Autopkg Environment Setup _target = os.getenv("APKG_TARGET") if _target == "prod": datafile = "/etc/autopkg/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() ## 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" } # Main Application if __name__ == "__main__": logger.log("Running Autopkg (c) 2025 phantom 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 if response.status_code == 200: json = response.json() version = json["id"] ini_version = str(version) # Package new versions if available if version != ini_version: logger.log(f"Found new version ({version}) for {app}, packaging..") pkg(app, version) # Write changes with open("data.ini", "w") as datafile: data.write(datafile)