|
1 | 1 | # Flashpoint Ultimate Updater |
2 | 2 |
|
| 3 | + |
| 4 | + |
| 5 | +Flashpoint Ultimate Updater is designed to install extremely large numbers of immutable files from a remote server. Built on the back of the [grab](https://github.com/cavaliergopher/grab) library. |
| 6 | + |
| 7 | +Features: |
| 8 | +- Resumable install state |
| 9 | +- Pause and start downloader |
| 10 | +- Scan and repair existing files |
| 11 | +- Resume partial file downloads |
| 12 | +- Install information fetched from remote server |
| 13 | +- Upgrade existing install to new version |
| 14 | +- Force upgrade when version no longer available on remote server |
| 15 | + |
| 16 | +## Setting up your remote server |
| 17 | + |
| 18 | +1. Install python and install indexer dependencies |
| 19 | +``` |
| 20 | +python -m pip install -r requirements.txt |
| 21 | +``` |
| 22 | + |
| 23 | +2. Create an index for each install version you want to serve. Save the resulting sqlite file to somewhere accessible on your webserver you wish to keep the updater metadata. |
| 24 | + - `directory_to_scan` - Directory of static files to index |
| 25 | + - `version_name` - Version name to show in the updater |
| 26 | + - `serve_url` - URL to where the directory of static files will be available on |
| 27 | + |
| 28 | +``` |
| 29 | +python ./index.py <directory_to_scan> <version_name> <serve_url> <output.sqlite> |
| 30 | +``` |
| 31 | + |
| 32 | +3. Create the metadata file that is fetched by the updater. Save to `meta.json` somewhere accessible online. |
| 33 | + - `current` - Version name of the current version. Must match `version_name` from index above |
| 34 | + - `path` - URL to the current sqlite file. |
| 35 | + - `available` - List of available versions still being hosted, same format as `current`. If any are removed, users will be forced to upgrade to the current version. |
| 36 | +```json |
| 37 | +{ |
| 38 | + "current": "Release 2.0", |
| 39 | + "path": "https://example.com/updater-data/release-2.0.sqlite", |
| 40 | + "available": [ |
| 41 | + "Release 1.0", |
| 42 | + "Release 2.0" |
| 43 | + ] |
| 44 | +} |
| 45 | +``` |
| 46 | + |
| 47 | +4. Edit the built in config.json to point to the `meta.json` file and compile your version. Placing config.json manually next to any compiled executable will override this. |
| 48 | +```json |
| 49 | +{ |
| 50 | + "meta_url": "https://example.com/updater-data/meta.json" |
| 51 | +} |
| 52 | +``` |
| 53 | + |
| 54 | +Keep reading on to **Building** to create an updater with the new config.json |
| 55 | + |
3 | 56 | ## Building |
4 | 57 |
|
5 | | -Bundle any resources |
| 58 | +1. Bundle the config json |
6 | 59 |
|
7 | 60 | `fyne bundle -o bundle.go config.json` |
8 | 61 |
|
9 | | -Package for desired operation system |
| 62 | +2. Package for desired operation system and set the icon |
| 63 | + |
| 64 | +`fyne package -os <windows/linux/darwin> -icon icon.png` |
10 | 65 |
|
11 | | -`fyne package -os windows/linux/darwin` |
| 66 | +Ta-da, there's a new executable in the folder! |
0 commit comments