fix(auto update): fix few messages, comments and code
Signed-off-by: Aditya Alok <dev.aditya.alok@gmail.com>
This commit is contained in:
parent
3bc578adb3
commit
694a941883
@ -13,7 +13,7 @@ set -u
|
|||||||
export TERMUX_PKG_UPDATE_METHOD="" # Which method to use for updating? (repology, github or gitlab)
|
export TERMUX_PKG_UPDATE_METHOD="" # Which method to use for updating? (repology, github or gitlab)
|
||||||
export TERMUX_PKG_UPDATE_TAG_TYPE="" # Whether to use latest-release-tag or newest-tag.
|
export TERMUX_PKG_UPDATE_TAG_TYPE="" # Whether to use latest-release-tag or newest-tag.
|
||||||
export TERMUX_GITLAB_API_HOST="gitlab.com" # Default host for gitlab-ci.
|
export TERMUX_GITLAB_API_HOST="gitlab.com" # Default host for gitlab-ci.
|
||||||
export TERMUX_PKG_AUTO_UPDATE=true # Whether to auto-update or not.
|
export TERMUX_PKG_AUTO_UPDATE=false # Whether to auto-update or not. Disabled by default.
|
||||||
export TERMUX_PKG_UPDATE_VERSION_REGEXP="" # Regexp to extract version.
|
export TERMUX_PKG_UPDATE_VERSION_REGEXP="" # Regexp to extract version.
|
||||||
export TERMUX_REPOLOGY_DATA_FILE
|
export TERMUX_REPOLOGY_DATA_FILE
|
||||||
TERMUX_REPOLOGY_DATA_FILE="$(mktemp -t termux-repology.XXXXXX)" # File to store repology data.
|
TERMUX_REPOLOGY_DATA_FILE="$(mktemp -t termux-repology.XXXXXX)" # File to store repology data.
|
||||||
@ -59,7 +59,7 @@ TERMUX_SCRIPTDIR="$(realpath "$(dirname "$0")/../..")" # Script directory.
|
|||||||
# shellcheck source=scripts/updates/internal/termux_gitlab_auto_update.sh
|
# shellcheck source=scripts/updates/internal/termux_gitlab_auto_update.sh
|
||||||
. "${TERMUX_SCRIPTDIR}"/scripts/updates/internal/termux_gitlab_auto_update.sh
|
. "${TERMUX_SCRIPTDIR}"/scripts/updates/internal/termux_gitlab_auto_update.sh
|
||||||
|
|
||||||
# Default auto update script for packages. Should not be overrided by build.sh.
|
# Default auto update script for rest packages. Should not be overrided by build.sh.
|
||||||
# To use custom algorithm, one should override termux_pkg_auto_update().
|
# To use custom algorithm, one should override termux_pkg_auto_update().
|
||||||
# shellcheck source=scripts/updates/internal/termux_repology_auto_update.sh
|
# shellcheck source=scripts/updates/internal/termux_repology_auto_update.sh
|
||||||
. "${TERMUX_SCRIPTDIR}"/scripts/updates/internal/termux_repology_auto_update.sh
|
. "${TERMUX_SCRIPTDIR}"/scripts/updates/internal/termux_repology_auto_update.sh
|
||||||
@ -107,15 +107,14 @@ _update() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_test_pkg_build_file() {
|
_test_pkg_build_file() {
|
||||||
local pkg_dir
|
local pkg_dir="$1"
|
||||||
pkg_dir="$1"
|
|
||||||
if [[ ! -f "${pkg_dir}/build.sh" ]]; then
|
if [[ ! -f "${pkg_dir}/build.sh" ]]; then
|
||||||
# Fail if detected a non-package directory.
|
# Fail if detected a non-package directory.
|
||||||
termux_error_exit "ERROR: directory '${pkg_dir}' is not a package."
|
termux_error_exit "ERROR: directory '${pkg_dir}' is not a package."
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
declare -a _failed_updates=()
|
declare -a _FAILED_UPDATES=()
|
||||||
|
|
||||||
_run_update() {
|
_run_update() {
|
||||||
local pkg_dir="$1"
|
local pkg_dir="$1"
|
||||||
@ -127,7 +126,7 @@ _run_update() {
|
|||||||
)
|
)
|
||||||
# shellcheck disable=SC2181
|
# shellcheck disable=SC2181
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
_failed_updates+=("$(basename "${pkg_dir}")")
|
_FAILED_UPDATES+=("$(basename "${pkg_dir}")")
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -143,12 +142,13 @@ _get_unique_packages() {
|
|||||||
echo "${unique_packages[@]}"
|
echo "${unique_packages[@]}"
|
||||||
}
|
}
|
||||||
|
|
||||||
declare -a _unique_packages
|
declare -a _UNIQUE_PACKAGES
|
||||||
read -r -a _unique_packages <<<"$(_get_unique_packages)"
|
read -r -a _UNIQUE_PACKAGES <<<"$(_get_unique_packages)"
|
||||||
|
|
||||||
_unique_to_termux() {
|
_unique_to_termux() {
|
||||||
local pkg_dir="$1"
|
local pkg_dir="$1"
|
||||||
if [[ "${_unique_packages[*]}" =~ "$(basename "${pkg_dir}")" ]]; then
|
# shellcheck disable=2076 # We want literal match not regex.
|
||||||
|
if [[ "${_UNIQUE_PACKAGES[*]}" =~ "$(basename "${pkg_dir}")" ]]; then
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
return 1
|
return 1
|
||||||
@ -180,10 +180,10 @@ main() {
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ((${#_failed_updates[@]} > 0)); then
|
if ((${#_FAILED_UPDATES[@]} > 0)); then
|
||||||
echo # Newline.
|
echo # Newline.
|
||||||
echo "===========================Failed updates==========================="
|
echo "===========================Failed updates==========================="
|
||||||
for failed_update in "${_failed_updates[@]}"; do
|
for failed_update in "${_FAILED_UPDATES[@]}"; do
|
||||||
echo "==> ${failed_update}"
|
echo "==> ${failed_update}"
|
||||||
done
|
done
|
||||||
exit 1 # Exit with error code, so that we know that some/all updates failed.
|
exit 1 # Exit with error code, so that we know that some/all updates failed.
|
||||||
|
@ -38,7 +38,6 @@ def get_repology_data(last_project):
|
|||||||
def get_outdated_packages():
|
def get_outdated_packages():
|
||||||
termux_outdated_packages = {}
|
termux_outdated_packages = {}
|
||||||
last_project = ""
|
last_project = ""
|
||||||
brk_flag = False # Flag to break the infinite loop.
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
repology_data = get_repology_data(last_project)
|
repology_data = get_repology_data(last_project)
|
||||||
@ -48,9 +47,11 @@ def get_outdated_packages():
|
|||||||
# Quoting repology documentation: "You may iterate through
|
# Quoting repology documentation: "You may iterate through
|
||||||
# all projects by using the last project name in the next request"
|
# all projects by using the last project name in the next request"
|
||||||
# For more info, visit https://repology.org/api
|
# For more info, visit https://repology.org/api
|
||||||
|
# NOTE: next response to request will include the last_project given.
|
||||||
if len(repology_data) <= 1:
|
if len(repology_data) <= 1:
|
||||||
# Break the loop after this iteration.
|
# Break the loop now. Since api returned only one package, it
|
||||||
brk_flag = True
|
# must be the last_project, which was already included in previous iteration.
|
||||||
|
break
|
||||||
|
|
||||||
for package_name, package_data in repology_data.items():
|
for package_name, package_data in repology_data.items():
|
||||||
if package_name in termux_outdated_packages:
|
if package_name in termux_outdated_packages:
|
||||||
@ -74,8 +75,6 @@ def get_outdated_packages():
|
|||||||
else:
|
else:
|
||||||
# If we don't find any version, skip the package.
|
# If we don't find any version, skip the package.
|
||||||
continue
|
continue
|
||||||
if brk_flag:
|
|
||||||
break
|
|
||||||
|
|
||||||
return termux_outdated_packages
|
return termux_outdated_packages
|
||||||
|
|
||||||
|
@ -30,11 +30,11 @@ termux_github_api_get_tag() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
local jq_filter
|
local jq_filter
|
||||||
local api_url=""
|
local api_url="https://api.github.com"
|
||||||
local extra_curl_opts=""
|
local extra_curl_opts=""
|
||||||
|
|
||||||
if [[ "${TAG_TYPE}" == "newest-tag" ]]; then
|
if [[ "${TAG_TYPE}" == "newest-tag" ]]; then
|
||||||
api_url="https://api.github.com/graphql"
|
api_url="${api_url}/graphql"
|
||||||
jq_filter='.data.repository.refs.edges[0].node.name'
|
jq_filter='.data.repository.refs.edges[0].node.name'
|
||||||
extra_curl_opts="-d $(
|
extra_curl_opts="-d $(
|
||||||
cat <<-EOF
|
cat <<-EOF
|
||||||
@ -57,7 +57,7 @@ termux_github_api_get_tag() {
|
|||||||
EOF
|
EOF
|
||||||
)"
|
)"
|
||||||
elif [[ "${TAG_TYPE}" == "latest-release-tag" ]]; then
|
elif [[ "${TAG_TYPE}" == "latest-release-tag" ]]; then
|
||||||
api_url="${api_url}/releases/latest"
|
api_url="${api_url}/repos/${project}/releases/latest"
|
||||||
jq_filter=".tag_name"
|
jq_filter=".tag_name"
|
||||||
else
|
else
|
||||||
termux_error_exit <<-EndOfError
|
termux_error_exit <<-EndOfError
|
||||||
|
@ -89,8 +89,6 @@ termux_gitlab_api_get_tag() {
|
|||||||
${response}
|
${response}
|
||||||
EndOfError
|
EndOfError
|
||||||
fi
|
fi
|
||||||
elif [[ "${http_code}" == "304" ]]; then
|
|
||||||
return 2 # Up-to-date.
|
|
||||||
else
|
else
|
||||||
termux_error_exit <<-EndOfError
|
termux_error_exit <<-EndOfError
|
||||||
ERROR: Failed to get '${TAG_TYPE}' (${api_url}).
|
ERROR: Failed to get '${TAG_TYPE}' (${api_url}).
|
||||||
|
@ -26,13 +26,13 @@ termux_pkg_is_update_needed() {
|
|||||||
# If needed, filter version numbers from tag by using regexp.
|
# If needed, filter version numbers from tag by using regexp.
|
||||||
if [[ -n "${VERSION_REGEX}" ]]; then
|
if [[ -n "${VERSION_REGEX}" ]]; then
|
||||||
LATEST_VERSION="$(grep -oP "${VERSION_REGEX}" <<<"${LATEST_VERSION}" || true)"
|
LATEST_VERSION="$(grep -oP "${VERSION_REGEX}" <<<"${LATEST_VERSION}" || true)"
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z "${LATEST_VERSION}" ]]; then
|
if [[ -z "${LATEST_VERSION}" ]]; then
|
||||||
termux_error_exit <<-EndOfError
|
termux_error_exit <<-EndOfError
|
||||||
ERROR: failed to check latest version. Ensure whether the version regex '${VERSION_REGEX}'
|
ERROR: failed to check latest version. Ensure whether the version regex '${VERSION_REGEX}'
|
||||||
works correctly with latest release tag.
|
works correctly with latest release tag.
|
||||||
EndOfError
|
EndOfError
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Translate "_" into ".": some packages use underscores to seperate
|
# Translate "_" into ".": some packages use underscores to seperate
|
||||||
|
@ -27,7 +27,7 @@ termux_pkg_upgrade_version() {
|
|||||||
echo "INFO: package being updated to $(echo "${LATEST_VERSION}" | cut -d':' -f2)."
|
echo "INFO: package being updated to $(echo "${LATEST_VERSION}" | cut -d':' -f2)."
|
||||||
|
|
||||||
sed -i \
|
sed -i \
|
||||||
"s/^\(TERMUX_PKG_VERSION=\)\(.*\)\$/\1${LATEST_VERSION}/g" \
|
"s/^\(TERMUX_PKG_VERSION=\)\(.*\)\$/\1\"${LATEST_VERSION}\"/g" \
|
||||||
"${PKG_DIR}/build.sh"
|
"${PKG_DIR}/build.sh"
|
||||||
sed -i \
|
sed -i \
|
||||||
"/TERMUX_PKG_REVISION=/d" \
|
"/TERMUX_PKG_REVISION=/d" \
|
||||||
@ -61,7 +61,6 @@ termux_pkg_upgrade_version() {
|
|||||||
if [[ "${GIT_PUSH_PACKAGES}" == "true" ]]; then
|
if [[ "${GIT_PUSH_PACKAGES}" == "true" ]]; then
|
||||||
echo "INFO: Pushing package."
|
echo "INFO: Pushing package."
|
||||||
stderr="$(
|
stderr="$(
|
||||||
git status # DEBUG
|
|
||||||
git pull --rebase 2>&1 >/dev/null
|
git pull --rebase 2>&1 >/dev/null
|
||||||
git push 2>&1 >/dev/null
|
git push 2>&1 >/dev/null
|
||||||
)" || {
|
)" || {
|
||||||
|
Loading…
Reference in New Issue
Block a user