bmputil
Feature: Automated firmware download
#24
Merged

Feature: Automated firmware download #24

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

Login to write a write a comment.

Login via GitHub

Reviewers
Assignees
No one assigned
Labels
Milestone