Skip to content

waveline-software/supdate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sUpdate

Static Update hosting standard.


Table of Contents

Server-Side : Directory : Product List : Update List : Metadata : Package : NodeJS Server
Client-Side : Library


Directory Layout

A list (list.json) and all product directories are placed in the root directory. Each product directory contains an update list (updates.json) and all version directories. Each version directory contains a metadata file (meta.json) and an update package (package.7z).

.
├── list.json
└── product
    ├── updates.json
    └── x.x.x
        ├── meta.json
        └── package.7z

An full example can be found here.


Product List Format

The product list (list.json) placed in the root directory contains information for what version of the standard it follows (stdver) and a list of products. Each item the product list (products) contains the name of the product (name), the name of it's directory (dir), and a 32-character long ID (id).

{
    "stdver": [ 1, 0, 0 ],
    
    "products": [
        { "name": "Product Name", "dir": "product", "id": "00000000000000000000000000000000" }
    ]
}

An example can be found here.


Update List Format

An update list (updates.json) is placed in the root of each product directory and contains the version of the standard it follows (stdver), and a list of avaliable updates. Each item in this list of updates (updates), contains which version it's for (version), and which directory it can be found in (dir).

{
    "stdver": [ 1, 0, 0 ],
    
    "updates": [
        { "version": [ 2, 0, 0 ], "dir":"2.0.0" }
    ]
}

An example can be found here.


Metadata Format

Each update directory contains metadata (meta.json). This file contains the version of the standard it follows (stdver), and information on the update package itself. It is required to contain the name of the executable to run (installer) and an SHA256 checksum of the update package (sha256).

{
    "stdver": [ 1, 0, 0 ],
    
    "installer": "file.exe",
    "sha256": "0000000000000000000000000000000000000000000000000000000000000000"
}

An example can be found here.


Package Layout

Each update directory also contains a package (package.7z). This compressed file should contain an installer (usually install.exe, setup.exe, etc) and any other required information (like a readme).

package.7z
├── install.exe
└── readme.txt

An example can be found here.


NodeJS-Based Server

Software for the server can be found here. The server simply statically hosts the root directory specified in it's config file.


Client Library

Client library coming soon...

Releases

No releases published

Packages

No packages published