summary refs log tree commit diff
path: root/pkgs/games/factorio
diff options
context:
space:
mode:
authorLuke Granger-Brown <git@lukegb.com>2021-10-26 22:58:56 +0000
committerLuke Granger-Brown <git@lukegb.com>2021-10-26 22:58:56 +0000
commit75806416237c253ccd872f7ef567a39d882dfff7 (patch)
tree2d24cece768829056b18da4f677faa760d1ab7b2 /pkgs/games/factorio
parentc2c0862c7abd164d0cd0029a74164fee76f2182a (diff)
downloadnixpkgs-75806416237c253ccd872f7ef567a39d882dfff7.tar
nixpkgs-75806416237c253ccd872f7ef567a39d882dfff7.tar.gz
nixpkgs-75806416237c253ccd872f7ef567a39d882dfff7.tar.bz2
nixpkgs-75806416237c253ccd872f7ef567a39d882dfff7.tar.lz
nixpkgs-75806416237c253ccd872f7ef567a39d882dfff7.tar.xz
nixpkgs-75806416237c253ccd872f7ef567a39d882dfff7.tar.zst
nixpkgs-75806416237c253ccd872f7ef567a39d882dfff7.zip
factorio: add support for updating specific release_type/release_channel
Diffstat (limited to 'pkgs/games/factorio')
-rwxr-xr-xpkgs/games/factorio/update.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/pkgs/games/factorio/update.py b/pkgs/games/factorio/update.py
index 833a4ae068e..c234b36264e 100755
--- a/pkgs/games/factorio/update.py
+++ b/pkgs/games/factorio/update.py
@@ -23,6 +23,8 @@ FLAGS = flags.FLAGS
 flags.DEFINE_string('username', '', 'Factorio username for retrieving binaries.')
 flags.DEFINE_string('token', '', 'Factorio token for retrieving binaries.')
 flags.DEFINE_string('out', '', 'Output path for versions.json.')
+flags.DEFINE_list('release_type', '', 'If non-empty, a comma-separated list of release types to update (e.g. alpha).')
+flags.DEFINE_list('release_channel', '', 'If non-empty, a comma-separated list of release channels to update (e.g. experimental).')
 
 
 @dataclass
@@ -65,7 +67,7 @@ RELEASE_CHANNELS = [
 
 def find_versions_json() -> str:
     if FLAGS.out:
-        return out
+        return FLAGS.out
     try_paths = ["pkgs/games/factorio/versions.json", "versions.json"]
     for path in try_paths:
         if os.path.exists(path):
@@ -118,6 +120,12 @@ def merge_versions(old: OurVersionJSON, new: OurVersionJSON) -> OurVersionJSON:
         old_system = old.get(system_name, {})
         old_release_type = old_system.get(release_type_name, {})
         old_release = old_release_type.get(release_channel_name, {})
+        if FLAGS.release_type and release_type_name not in FLAGS.release_type:
+            logging.info("%s/%s/%s: not in --release_type, not updating", system_name, release_type_name, release_channel_name)
+            return old_release
+        if FLAGS.release_channel and release_channel_name not in FLAGS.release_channel:
+            logging.info("%s/%s/%s: not in --release_channel, not updating", system_name, release_type_name, release_channel_name)
+            return old_release
         if not "sha256" in old_release:
             logging.info("%s/%s/%s: not copying sha256 since it's missing", system_name, release_type_name, release_channel_name)
             return release