about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDylan DPC <dylan.dpc@gmail.com>2020-08-27 01:14:20 +0200
committerGitHub <noreply@github.com>2020-08-27 01:14:20 +0200
commit8fd73aa45de5f4d9445a0c8b6f2672826b927442 (patch)
treeca9f140e228efb556ae462e8d4996f8d55a1a92c
parentc2a0168ce5eeb546ff7f72b3460ac9a55fc21381 (diff)
parentc8b240241a94a3a5badcbdcbe1b642a0dd440119 (diff)
downloadrust-8fd73aa45de5f4d9445a0c8b6f2672826b927442.tar.gz
rust-8fd73aa45de5f4d9445a0c8b6f2672826b927442.zip
Rollup merge of #75958 - Mark-Simulacrum:fix-toolstate, r=kennytm
Avoid function-scoping global variables

In 2e6f2e885506ee4, we added a main function to the publish_toolstate.py script.
Unfortunately, we missed that the Python program implicitly declares global
variables in that code, which means that adding a function changes variable
scoping and breaks other code.

This commit avoids introducing that function and adds a warning to future
editors of the code.
-rwxr-xr-xsrc/tools/publish_toolstate.py18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/tools/publish_toolstate.py b/src/tools/publish_toolstate.py
index 51416c8ce63..9cfde0c232b 100755
--- a/src/tools/publish_toolstate.py
+++ b/src/tools/publish_toolstate.py
@@ -275,7 +275,12 @@ def update_latest(
         return message
 
 
-def main():
+# Warning: Do not try to add a function containing the body of this try block.
+# There are variables declared within that are implicitly global; it is unknown
+# which ones precisely but at least this is true for `github_token`.
+try:
+    if __name__ != '__main__':
+        exit(0)
     repo = os.environ.get('TOOLSTATE_VALIDATE_MAINTAINERS_REPO')
     if repo:
         github_token = os.environ.get('TOOLSTATE_REPO_ACCESS_TOKEN')
@@ -342,11 +347,6 @@ def main():
         }
     ))
     response.read()
-
-
-if __name__ == '__main__':
-    try:
-        main()
-    except urllib2.HTTPError as e:
-        print("HTTPError: %s\n%s" % (e, e.read()))
-        raise
+except urllib2.HTTPError as e:
+    print("HTTPError: %s\n%s" % (e, e.read()))
+    raise