Feature: Automated firmware download #24
cargo: Added the serde (+ the JSON part), reqwest and url crates so w…
9684b9fd
metadata/structs: Began the process of describing the metadata necessary
3f205e95
metadata: Defined a full JSON Schema of the metadata files so they ca…
f64d90e6
metadata/structs: Made the data defined available, and fixed a type m…
d1afa3cb
error: Defined the machinery to handle serde JSON errors
1aaa6dfc
metadata/structs: Fixed deserialisation of the Probes enum and varien…
7f69f846
metadata/structs: Implemented the ability to turn a Probes value back…
edd70f5e
metadata/structs: Fixed the nomeclature of the Probe enum
acecd650
metadata/structs: Implemented deserialisation of the BMDA target oper…
7d08f85a
metadata/structs: Added some comments through the file to help with k…
bac6a889
metadata: Implemented some validation for the optional BMDA metadata …
51f2a62b
main: Initial testing of the new metadata reader mechanics
314f0463
metadata/structs: Strictly enforce the schema
06b56fa4
metadata/structs: Implemented deserialisation of the BMDA CPU archite…
9b5adbff
metadata/structs: Fixed the display names of some of the metadata enu…
f4055281
metadata/structs: Implemented handling of the final structure in the …
37e4f2e6
main: Finished implementing display of the metadata structures to mak…
7a877c1a
cargo: Added rc-zip-sync for decompressing the Zip archives for BMDA,…
baa5cc98
cargo: Added the dialoguer crate as a dependency to allow us to creat…
dea7e18a
error: Implemented handling for errors from Dialoguer
6b9bfd54
switcher: Began implementing the logic for contextually switching the…
adcd2953
bmp: Extracted the logic for determining the identity of the probe ou…
6ed3f644
switcher: Made use of the new firmware identity function and the exis…
0c29bfd6
switcher: Allow the probe selection to be cancelled and gracefully ha…
2c8d0557
main: De-duplicated the code for reading out the firmware identity of…
5f05e85e
main: Document a known bug in the version string handler
8fd42695
switcher: Tidied up the probe selection prompt a touch, making it col…
f8b05cda
switcher: Implemented identity string parsing for the probe to extrac…
37e132c0
switcher: Dealt with the version string being able to be missing if t…
31343156
switcher: Fixed some formatting mistakes
074c257c
metadata/structs: Fixed a typo in the HydraBus Probe enum entry
b245a76c
switcher: Implemented translation of the probe strings to Probe enum …
c249688b
switcher: Implemented logic for grabbing the releases metadata and th…
32389cae
switcher: Built out logic for choosing which exact firmware variant s…
c24b0959
metadata: Corrected a couple of mistakes in the example metadata file
62e4fe1a
switcher: Fixed the way the selected release is looked up to map it b…
2b0b9ddd
switcher: Typing cleanup for the release lookup process
6bb6a5e9
switcher: Moved the release picking logic into its own function to he…
4a1f5f9e
cargo: Added a dependency on the directories crate to make accessing …
07020093
main: Set up a ProjectDirs to allow us to store cache and configurati…
8fd349ef
switcher: Extract the path to the cache for firmware download
5c284e06
switcher: Implemented logic for reporting a cancelled firmware varian…
71752e3d
error: Implemented the machinary to consume/absorb reqwest errors
58acd67a
cargo: Tidied up in the TOML
df540682
switcher: Implemented firmware download to a cache of firmware
154b05f7
flasher: Moved the firmware programming logic into a new function
a27f0ab3
flasher: Created a Firmware structure for describing probe firmware a…
8d98f742
flasher: Tidied up by moving the firmware programming logic into the …
80c46350
flasher: Moved the code for reading a firwmare file out into a new fu…
3c8b7e16
flasher: Tidy up by moving the ihex handler in with the firmware read…
2d83cbb7
flasher: Moved the logic for checking the probe programmed correctly …
eb9ae4cc
flasher: Moved the overarching logic for programming a probe with new…
1bcb772a
flasher: Switched the type used for the file name to a PathBuf to pro…
3ba8d578
switcher: Call the Flash reprogramming logic to complete the firmware…
df2ffd66
main: Added the override flags to the `switch` subcommand to allow it…
7c5de988
switched: Fixed an error in the release filtering logic which meant m…
ad8d46c8
switcher: Cleaned up the use statements a bit
6054b997
metadata: Provide the path to the metadata cache through to download_…
666c7e8e
cargo: Added a dependency on the sha2 crate for ETag generation
5cbf2c58
metadata: Implemented ETag computation for the cached metadata file
7201d72b
metadata: Handle when the metadata file does not yet exist in ETag ge…
1f5374c4
metadata: Implemented download of the release metadata as-needed
20fdcc15
metadata: Deal with responses other than not-modified and OK for the …
c5f40dac
project: Refactor to use bin targets with a core lib.
bce2130e
project: Removed the manual backtrace handling as it is now part of s…
0f088f0c
cli: Remove the manually built backtrace printing and bump rust editi…
226858f3
metadata: Ensured that the cache directory exists before trying to wr…
df01950e
misc: Removed the test hand-written metadata now we're using a cached…
21a39bf2
cli: Fixed a couple of compilation issues for Windows caused by the r…
5ee01928
esden
approved these changes
on 2025-04-15
esden
merged
5ee01928
into main 1 year ago
dragonmux
deleted the feature/automated-firmware-download branch 1 year ago
dragonmux
added this to the v1.0 release milestone 1 year ago
Assignees
No one assigned
Login to write a write a comment.
Login via GitHub