fix(stubgen): give new output files the default umask permissions
This commit is contained in:
parent
83be8dfb27
commit
8b73fe7a76
|
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import tempfile
|
||||
|
|
@ -177,6 +178,8 @@ def same_file(left, right):
|
|||
|
||||
def write_outputs(outputs):
|
||||
staged = []
|
||||
umask = os.umask(0)
|
||||
os.umask(umask)
|
||||
try:
|
||||
for filename, content in outputs:
|
||||
path = Path(filename).resolve()
|
||||
|
|
@ -188,6 +191,8 @@ def write_outputs(outputs):
|
|||
handle.write(content)
|
||||
if path.exists():
|
||||
temporary.chmod(path.stat().st_mode & 0o7777)
|
||||
else:
|
||||
temporary.chmod(0o666 & ~umask)
|
||||
for temporary, path in staged:
|
||||
temporary.replace(path)
|
||||
finally:
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import contextlib
|
||||
import io
|
||||
import os
|
||||
import tempfile
|
||||
from pathlib import Path
|
||||
import sys
|
||||
|
|
@ -113,6 +114,10 @@ class StubGeneratorTests(unittest.TestCase):
|
|||
self.assertEqual(stubgen.main(arguments), 0)
|
||||
self.assertIn('APS5_EXPORT("AAAAAAAAAAA",', code.read_text(encoding="utf-8"))
|
||||
self.assertIn("unknown name, signature", debt.read_text(encoding="utf-8"))
|
||||
if sys.platform != "win32":
|
||||
mask = os.umask(0o022)
|
||||
os.umask(mask)
|
||||
self.assertEqual(code.stat().st_mode & 0o777, 0o666 & ~mask)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
|
|||
Loading…
Reference in New Issue