dotfiles/de/home/.local/bin/software-release-monitor
2025-07-19 11:15:08 -07:00

35 lines
1.4 KiB
Bash
Executable file

#!/usr/bin/env bash
software_json_cache="${HOME}/.cache/software-release-monitor.json"
source ${HOME}/.secrets
function get_package_info(){
packages_array=()
while read i; do
# echo "${i}"
package_name=$(jq -r '.packageName' <<<"${i}")
upstream_url=$(jq -r '.upstreamURL' <<<"${i}")
package_version=$(apt-cache show "${package_name}" | grep Version | awk '{print $2}' | head -n1)
# package_version=$(dpkg-query -W -f='${Version}' "${package_name}")
upstream_version=$(lastversion "${upstream_url}")
if [[ "${package_version}" == *"${upstream_version}"* ]]; then
up_to_date='true'
else
up_to_date='false'
fi
package_json=$( jq -n --arg name "${package_name}" --arg pkgver "${package_version}" --arg upstreamver "${upstream_version}" --arg uptodate "${up_to_date}" '{package_name: $name, package_version: $pkgver, upstream_version: $upstreamver, up_to_date: $uptodate}' )
packages_array+=("${package_json}")
done < <(jq -c '.[]' "${HOME}/.config/software-release-monitor/config.json")
#packages_json=$(printf '%s\n' "${packages_array[@]}" | jq -s .)
#echo "${packages_json}"
printf '%s\n' "${packages_array[@]}" | jq -s . | tee "${software_json_cache}" >/dev/null
#echo "${package_array_item}"
#echo "${package_array[@]}"
}
if [[ ! $(find "${software_json_cache}" -cmin -180 -print 2>/dev/null) ]]; then
get_package_info
fi
cat "${software_json_cache}"