factorio: Fix bug in update.py

Prior to this change, `update.py` fails with `KeyError: 'alpha'` when upstream
does not have a version in the `experimental` channel:

	./update.py --username XXXXXXXX --token "$(wl-paste)"
	Traceback (most recent call last):
	  File "./update.py", line 180, in <module>
	    app.run(main)
	  File "/nix/store/854z51wg8fj1s6ghxasp1xxx8khb3r8v-python3-3.8.9-env/lib/python3.8/site-packages/absl/app.py", line 303, in run
	    _run_main(main, args)
	  File "/nix/store/854z51wg8fj1s6ghxasp1xxx8khb3r8v-python3-3.8.9-env/lib/python3.8/site-packages/absl/app.py", line 251, in _run_main
	    sys.exit(main(argv))
	  File "./update.py", line 162, in main
	    new_our_versions = generate_our_versions(factorio_versions)
	  File "./update.py", line 92, in generate_our_versions
	    version = factorio_versions[release_channel.name][release_type.name]
	KeyError: 'alpha'

I chose to make it so that the versions in nixpkgs' `factorio-*` packages are
either experimental (when available) or stable, as this seems like the most
coherent approach
This commit is contained in:
nicoo 2021-06-19 21:11:28 +02:00
parent 0747387223
commit 5e06828dff

View file

@ -80,6 +80,12 @@ def fetch_versions() -> FactorioVersionsJSON:
def generate_our_versions(factorio_versions: FactorioVersionsJSON) -> OurVersionJSON:
rec_dd = lambda: defaultdict(rec_dd)
output = rec_dd()
# Deal with times where there's no experimental version
for rc in RELEASE_CHANNELS:
if not factorio_versions[rc.name]:
factorio_versions[rc.name] = factorio_versions['stable']
for system in SYSTEMS:
for release_type in RELEASE_TYPES:
for release_channel in RELEASE_CHANNELS: