diff --git a/.efrocachemap b/.efrocachemap index 73fb5628..828fdacf 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -420,7 +420,7 @@ "assets/build/ba_data/audio/zoeOw.ogg": "https://files.ballistica.net/cache/ba1/a9/71/9286d55c45c37877f3267850f90b", "assets/build/ba_data/audio/zoePickup01.ogg": "https://files.ballistica.net/cache/ba1/2f/09/36e691de67eb8f155449a7170861", "assets/build/ba_data/audio/zoeScream01.ogg": "https://files.ballistica.net/cache/ba1/fd/a8/ad50785ce206e8dc3dcc7358b173", - "assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/5f/e3/ef26b1c684d8e8527fe34ad66c82", + "assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/61/60/aa648c6eae00d4d85cd297683dfb", "assets/build/ba_data/data/languages/arabic.json": "https://files.ballistica.net/cache/ba1/ac/3e/c50dc4e98df47f858c3a73ac4272", "assets/build/ba_data/data/languages/belarussian.json": "https://files.ballistica.net/cache/ba1/44/ed/5b972fa848cffb73723533c2ccb7", "assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/9d/63/d360eeff63bc64e098427498880d", @@ -438,7 +438,7 @@ "assets/build/ba_data/data/languages/hindi.json": "https://files.ballistica.net/cache/ba1/ed/98/37d9457755f7e86e2f2875e3b055", "assets/build/ba_data/data/languages/hungarian.json": "https://files.ballistica.net/cache/ba1/87/2d/027aa239eb66ea8f496562f4fd83", "assets/build/ba_data/data/languages/indonesian.json": "https://files.ballistica.net/cache/ba1/2e/ed/5a9aeb588a89432ded31c657c1e9", - "assets/build/ba_data/data/languages/italian.json": "https://files.ballistica.net/cache/ba1/6b/5a/6e8e3692347d9ba01aff607af5a8", + "assets/build/ba_data/data/languages/italian.json": "https://files.ballistica.net/cache/ba1/fb/2b/4c875a40e176079dedaacf1362c7", "assets/build/ba_data/data/languages/korean.json": "https://files.ballistica.net/cache/ba1/0a/84/bbb6ed2abf66509406f534cbbb52", "assets/build/ba_data/data/languages/persian.json": "https://files.ballistica.net/cache/ba1/16/83/5a815f0e73dbac1d8cce337bff1b", "assets/build/ba_data/data/languages/polish.json": "https://files.ballistica.net/cache/ba1/cd/c1/82bf70c3ee4894791506f4da1a15", @@ -450,7 +450,7 @@ "assets/build/ba_data/data/languages/spanish.json": "https://files.ballistica.net/cache/ba1/72/6a/55e4f8ce819d0c39ee6d86e8c6a0", "assets/build/ba_data/data/languages/swedish.json": "https://files.ballistica.net/cache/ba1/50/9f/be006ba19be6a69a57837eb6dca0", "assets/build/ba_data/data/languages/turkish.json": "https://files.ballistica.net/cache/ba1/49/3e/6387412abc266c5c0d922bb81d02", - "assets/build/ba_data/data/languages/ukrainian.json": "https://files.ballistica.net/cache/ba1/66/b0/e1d71e57673a6fc78e0ea181b76b", + "assets/build/ba_data/data/languages/ukrainian.json": "https://files.ballistica.net/cache/ba1/3e/f3/4e9003c88e959d0d75a225c7a87e", "assets/build/ba_data/data/languages/venetian.json": "https://files.ballistica.net/cache/ba1/e4/3e/243eaa0237361b984fc6c56042be", "assets/build/ba_data/data/languages/vietnamese.json": "https://files.ballistica.net/cache/ba1/04/52/683a27aaf9aa7c63e7e595f80d08", "assets/build/ba_data/data/maps/big_g.json": "https://files.ballistica.net/cache/ba1/47/0a/a617cc85d927b576c4e6fc1091ed", @@ -3932,26 +3932,26 @@ "assets/build/windows/Win32/ucrtbased.dll": "https://files.ballistica.net/cache/ba1/b5/85/f8b6d0558ddb87267f34254b1450", "assets/build/windows/Win32/vc_redist.x86.exe": "https://files.ballistica.net/cache/ba1/1c/e1/4a1a2eddda2f4aebd5f8b64ab08e", "assets/build/windows/Win32/vcruntime140d.dll": "https://files.ballistica.net/cache/ba1/50/8d/bc2600ac9491f1b14d659709451f", - "build/prefab/full/linux_arm64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/76/e4/20e36d3f74b4aba6dfbf6c1e7a3c", - "build/prefab/full/linux_arm64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/9f/3b/46c10e31faf30642719e8d051f51", - "build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/3c/a7/3ca43775dfe81d796bfa38473303", - "build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/51/ec/c4ebc76cd5f17f974874bcfc7733", - "build/prefab/full/linux_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/98/f3/55d5e976bf4a5e59b7fb0e1a9049", - "build/prefab/full/linux_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/9d/cf/1abae2d413903ac980e3cfd6e0e3", - "build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/1c/3c/161096b136ac519eaf7ead0d32a1", - "build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/13/1c/c72c01e8e7ed072b2452142fca77", - "build/prefab/full/mac_arm64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/d6/9d/e4a6554a9712cda7840511219df2", - "build/prefab/full/mac_arm64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/c8/ca/e686c76cc102db57c4df20a0db04", - "build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/9a/59/c272db6020c424a96ce01a4f5d56", - "build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/8a/87/7bbc845d3559609d1b5a411d12e2", - "build/prefab/full/mac_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/5b/77/f45ffd7e36bf3e86d8c8c01c5b72", - "build/prefab/full/mac_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/83/97/446ffe1f9e6a762d8f006b264654", - "build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/2b/29/785e06a7b25ed5b55a9d0e93c6bf", - "build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/c2/ef/3cade90a38e855c8dc9c15295c32", - "build/prefab/full/windows_x86/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/d6/c9/3e3a70a888a785a4f0e9dd483a1f", - "build/prefab/full/windows_x86/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/8a/1b/4fdf49299324c76e637777ea7e4a", - "build/prefab/full/windows_x86_server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/57/48/fab31e4ac7d9f846245ebaf6fe0a", - "build/prefab/full/windows_x86_server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/e8/b0/841559924243fcada9d7d1cb58de", + "build/prefab/full/linux_arm64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/f5/30/1c8c0d84ac72c90da573721cfe1f", + "build/prefab/full/linux_arm64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/0c/29/b7b0f593eb1c85f13bf42e3472ce", + "build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/cb/d5/ba200a48c09fc908a389e640bfdb", + "build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/c5/ef/7e04882c10e3f759352e4edcec18", + "build/prefab/full/linux_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/ef/e7/552c82b0e1ac43f1d51173dd9519", + "build/prefab/full/linux_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/ec/45/b9b9b93279affd8c3b2908522280", + "build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/c8/be/fa926ff5b5b55c1947c5b53f817b", + "build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ae/56/5494051ee690ef0c65a6a46f40c6", + "build/prefab/full/mac_arm64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/85/1f/de45cf6f22452d798267d0daad2e", + "build/prefab/full/mac_arm64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/56/75/4f22abbb61f13ea186df6b32b3af", + "build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/6e/bb/1118b250ff27b34674ed478ecaf0", + "build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/0a/d6/4c6dc7cc2e3a82967e6ae7861708", + "build/prefab/full/mac_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/85/9e/627d4b02ae3acd6163a59f91fb3f", + "build/prefab/full/mac_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/6b/54/63cbd9d3ef2c96a10454ee397002", + "build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/fb/94/a0090beb3a351319adfc35176f36", + "build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/d5/39/ac587f2dc1463cc8f9ecc8a69d28", + "build/prefab/full/windows_x86/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/e7/f6/76272159711251015d6200af98c7", + "build/prefab/full/windows_x86/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/bf/ff/9c9b4fafa3982c80b089f5a05984", + "build/prefab/full/windows_x86_server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/00/94/c717d9d4e7ad92c7ad30d6e0477e", + "build/prefab/full/windows_x86_server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/ac/f3/02758239ee9ce8bd691dba363025", "build/prefab/lib/linux_arm64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/4c/bf/393694ea67f3d590dd2706c9955e", "build/prefab/lib/linux_arm64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/78/cb/bb9ae4f896f862074057c8e36e1d", "build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ae/bd/39d7b885f7f01e81d0e96f0f85ce", @@ -3960,12 +3960,12 @@ "build/prefab/lib/linux_x86_64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/52/d9/563a6949d2c4db5a915c54460fbc", "build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d0/6a/42fe8d2e34f95e1b3282e8422344", "build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/50/cf/bad44b07a4022aee3001002086b5", - "build/prefab/lib/mac_arm64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/38/dc/ac069b31a566df1b738adae005b6", - "build/prefab/lib/mac_arm64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/c9/96/a75c9739a5cccca60cd74cea22ca", - "build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/3c/17/f1b4bb490383d9dc43714f39c77b", - "build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/c2/e0/32f9701738320d592692e9b30869", - "build/prefab/lib/mac_x86_64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/98/43/d779605636305318e68d4eaef10a", - "build/prefab/lib/mac_x86_64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/28/b2/7ce9803bf834bf90f3d5927c323e", - "build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/be/e4/e37e38122257176c923475c4be83", - "build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/eb/51/2ca27968b65c54abe198ff49f164" + "build/prefab/lib/mac_arm64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/11/75/d6b507b0bf2221276b57d1b6bb8c", + "build/prefab/lib/mac_arm64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/3d/d6/77958051be0b2d6b9df07edae905", + "build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/66/30/38d5ad2a015fc680e050d119ec23", + "build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/02/c5/c3b7ad88c987df2bea8754567342", + "build/prefab/lib/mac_x86_64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/30/8a/bbeaa60c53b14490fad2deeb27da", + "build/prefab/lib/mac_x86_64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/5a/6d/c931947a01c3e7a9da9251363d42", + "build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/02/a1/e8badf04ff761d8dfad22d98e38c", + "build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/bf/d2/d5be0ff30844c11db4047eb84263" } \ No newline at end of file diff --git a/src/ballistica/ballistica.cc b/src/ballistica/ballistica.cc index 9946580a..fc681145 100644 --- a/src/ballistica/ballistica.cc +++ b/src/ballistica/ballistica.cc @@ -21,7 +21,7 @@ namespace ballistica { // These are set automatically via script; don't change here. -const int kAppBuildNumber = 20310; +const int kAppBuildNumber = 20312; const char* kAppVersion = "1.6.0"; // Our standalone globals. diff --git a/tools/efrotools/pcommand.py b/tools/efrotools/pcommand.py index a76e495d..d85263e7 100644 --- a/tools/efrotools/pcommand.py +++ b/tools/efrotools/pcommand.py @@ -183,6 +183,34 @@ def pyver() -> None: print(PYVER, end='') +def try_repeat() -> None: + """Run a command with repeat attempts on failure. + + First arg is the number of retries; remaining args are the command. + """ + import subprocess + from efro.error import CleanError + # We require one number arg and at least one command arg. + if len(sys.argv) < 4: + raise CleanError( + 'Expected a retry-count arg and at least one command arg') + try: + repeats = int(sys.argv[2]) + except Exception: + raise CleanError('Expected int as first arg') from None + if repeats < 0: + raise CleanError('Retries must be >= 0') + cmd = sys.argv[3:] + for i in range(repeats + 1): + result = subprocess.run(cmd, check=False) + if result.returncode == 0: + return + print(f'try_repeat attempt {i + 1} of {repeats + 1} failed for {cmd}.', + file=sys.stderr, + flush=True) + raise CleanError(f'Command failed {repeats + 1} time(s): {cmd}') + + def check_clean_safety() -> None: """Ensure all files are are added to git or in gitignore. diff --git a/tools/pcommand b/tools/pcommand index 5df5a8dc..055ab9ae 100755 --- a/tools/pcommand +++ b/tools/pcommand @@ -23,7 +23,7 @@ from efrotools.pcommand import ( cpplint, pylint, runpylint, mypy, runmypy, dmypy, tool_config_install, sync, sync_all, scriptfiles, pycharm, clioncode, androidstudiocode, makefile_target_list, spelling, spelling_all, pytest, echo, - compile_python_files, pyver) + compile_python_files, pyver, try_repeat) from batools.pcommand import ( stage_server_file, py_examine, resize_image, check_clean_safety, clean_orphaned_assets, archive_old_builds, lazy_increment_build,