|
1 | | -import os |
2 | 1 | import re |
3 | 2 | import subprocess |
4 | | -import sys |
| 3 | +import argparse |
5 | 4 |
|
6 | | -if len(sys.argv) != 2: |
7 | | - print("Please use in form of 'python fix_containers.py foowiki'") |
8 | | - sys.exit(1) |
9 | 5 |
|
10 | | -wiki = sys.argv[1] |
| 6 | +def fix_container_perms(wiki: str) -> None: |
| 7 | + out = subprocess.run(['sudo', '-u', 'www-data', 'php', '/srv/mediawiki/1.41/maintenance/run.php', '/srv/mediawiki/1.41/extensions/CreateWiki/maintenance/setContainersAccess.php', '--wiki', wiki], capture_output=True, text=True) |
| 8 | + matches = re.findall(r"Making sure 'mwstore:\/\/miraheze-swift\/([^']+)' [^\n]+\.failed\.", out.stdout) |
| 9 | + for match in matches: |
| 10 | + subprocess.run(['swift', 'post', '--read-acl', 'mw:media', '--write-acl', 'mw:media', f'miraheze-{wiki}-{match}'], check=True) |
11 | 11 |
|
12 | | -out = subprocess.run(['sudo', '-u', 'www-data', 'php', '/srv/mediawiki/1.41/maintenance/run.php', '/srv/mediawiki/1.41/extensions/CreateWiki/maintenance/setContainersAccess.php', '--wiki', wiki], capture_output=True, text=True) |
| 12 | + subprocess.run(['sudo', '-u', 'www-data', 'php', '/srv/mediawiki/1.41/maintenance/run.php', '/srv/mediawiki/1.41/extensions/CreateWiki/maintenance/setContainersAccess.php', '--wiki', wiki]) |
13 | 13 |
|
14 | | -matches = re.findall(r"Making sure 'mwstore:\/\/miraheze-swift\/([^']+)' [^\n]+\.failed\.", out.stdout) |
15 | | -for match in matches: |
16 | | - os.system(f"swift post --read-acl 'mw:media' --write-acl 'mw:media' miraheze-{wiki}-{match}") |
17 | 14 |
|
18 | | -os.system(f'sudo -u www-data php /srv/mediawiki/1.41/maintenance/run.php /srv/mediawiki/1.41/extensions/CreateWiki/maintenance/setContainersAccess.php --wiki {wiki}') |
| 15 | +def main() -> None: |
| 16 | + parser = argparse.ArgumentParser(description='Fix container permissions for a specified wiki') |
| 17 | + parser.add_argument('--wiki', required=True, help='wiki database name') |
| 18 | + |
| 19 | + args = parser.parse_args() |
| 20 | + fix_container_perms(args.wiki) |
| 21 | + |
| 22 | + |
| 23 | +if __name__ == '__main__': |
| 24 | + main() |
0 commit comments