Update Framework
Hello devs! You are the right spot to make take your software distribution and maintainance to another level with the Update Framework, a cross-platform tool to update your application without needing your users to download newer releases and replace the older one. Specially, if you publish an application on Linux based systems outside of apt repositories.
Features
- Easy-to-Setup
- Templates for backend
- Light-weight
- Compatible with all types of applications
Installation
Step 1: Download the release file from here.
Step 2: Extract the file. Step 3: Locate and execute the cli.bin file, for testing only.
Info
You may wonder why the size of the executable is large, this is due to the libraries shipped with it. When we will be having multiple executable like update tool, logger etc. They will use these libraries with some other. So, don't worry about the size of final version of Unified Software
Usage
The CLI requires two options: - request_endpoint - The endpoint to make get request. - products_file - Path to JSON file containing information about the installed products/software.
./cli.bin <REQUEST_ENDPOINT> <PATH_TO_JSON_FILE>
Example
As discussed above, this tool can be used with any of your application. For example, you have an application written in Python. To integrate, this tool use os module
to call execute command and read the exit codes.
from os import command
command("cli.bin <REQUEST_ENDPOINT> <PATH_TO_JSON>")
Please note that it is a minimal example.
API Response Structure
The tool follows a particular structure of response from API which is given below.
{
"filename": "UpdateFilename.tar.xz",
"release_date": "YYYY-MM-DD",
"release_link": "URL_TO_FILE",
"version": "1"
}
This means that you should return the filename
i.e the name of the file with which it is uploaded, release_date
(optional) - The date of release, release_link
- Url to file, version
- The latest version available.
Similarly, a specific JSON structure is followed for the file containing information of the installed products.
{
"xyz_product": {
"name": "xyz_product",
"version": "CURRENT_VERSION",
"path": "INSTALLATION_DIR"
}
}