-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Auto updating packages
Aditya Alok edited this page Apr 1, 2022
·
15 revisions
Currently packages hosted on github, gitlab or tracked by repology can be auto updated by default. You can use your own update method. See here.
Order specifies function sequence. 0 order specifies utility functions.
Suborder specifies a function triggered by the main function. Functions with different suborders are not executed simultaneously.
Order | Function Name | Overridable | Description | Parameters |
---|---|---|---|---|
0.1 | termux_error_exit |
No | Function to write error message to stderr and exit. |
Any number of string arguments. You can use heredoc for long messages. |
0.2 | termux_github_api_get_tag |
No | Query GitHub API for: • latest-release-tag : useful for projects using github's release mechanism. • newest-tag (sorted by commit date): useful for projects having tags but no releases. |
• PKG_SRCURL - Source url of package. • TAG_TYPE - Optional. Type of tag to query. It is one of the queries mentioned in description. If not given it is decided on the basis of PKG_SRCURL. For urls ending in .git newest-tag is queried, otherwise latest-release-tag . |
0.3 | termux_gitlab_api_get_tag |
No | same as above, but for gitlab |
same as above, except for optional 3rd argument: • API_HOST - Host for gitlab api. Default gitlab.com . |
0.4 | termux_repology_api_get_latest_version |
No | Query repology api for latest version. | • PKG_NAME - Name of the package to query for. |
1 | termux_pkg_auto_update |
Yes | By default, decide which method (gitlab, github or repology) to use for update, but can be overrided to use custom method. | None |
2.1 | termux_github_auto_update |
No | Default update method for packages hosted on github.com. It decides which type of tag to fetch based on TERMUX_PKG_SRCURL . |
None |
2.2 | termux_gitlab_auto_update |
No | Default update method for packages hosted on gitlab.com (or host specified by TERMUX_GITLAB_API_HOST ). It decides which type of tag to fetch based on TERMUX_PKG_SRCURL . |
None |
3 | termux_pkg_upgrade_version |
No | Write the latest version and updated checksum, check whether updated package builds properly and then push changes to repo. | • LATEST_VERSION - version to write to build.sh. It should be appended with epoch, if any. • --skip-version-check - Optional flag. Do not check whether given LATEST_VERSION is greater than current TERMUX_PKG_VERSION. |
3.1 | termux_pkg_is_update_needed |
No | Check whether LATEST_VERSION is greater than TERMUX_PKG_VERSION or not. Called if --skip-version-check was not passed to termux_pkg_upgrade_version . NOTE: You should not call it manually otherwise if TERMUX_PKG_UPDATE_VERSION_REGEXP is used, it won't compare versions extracted from it. Version is extracted by termux_pkg_upgrade_version . |
Not for public use. |
Where none of default methods work, you may override termux_pkg_auto_update()
function to use your own.
For example see neovim-nightly's build.sh.
- All Utility functions are available within
termux_pkg_auto_update()
or functions spawned by it. - You should call
termux_pkg_upgrade_version
with LATEST_VERSION to write changes to build.sh