mirror of
https://github.com/YunoHost/apps.git
synced 2024-09-03 20:06:07 +02:00
refactor(translate_apps): create a base.py file to avoid duplicating code
This commit is contained in:
parent
4b1454d04c
commit
5ba6232cfc
3 changed files with 88 additions and 155 deletions
|
@ -1,88 +1,11 @@
|
||||||
import os
|
|
||||||
import time
|
import time
|
||||||
import json
|
import json
|
||||||
import tempfile
|
|
||||||
import subprocess
|
|
||||||
|
|
||||||
from typing import Union
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
import tomlkit
|
import tomlkit
|
||||||
|
|
||||||
github_webhook_secret = open("github_webhook_secret", "r").read().strip()
|
from base import Repository, login, token
|
||||||
|
|
||||||
login = open("login").read().strip()
|
|
||||||
token = open("token").read().strip()
|
|
||||||
|
|
||||||
weblate_token = open("weblate_token").read().strip()
|
|
||||||
|
|
||||||
my_env = os.environ.copy()
|
|
||||||
my_env["GIT_TERMINAL_PROMPT"] = "0"
|
|
||||||
my_env["GIT_AUTHOR_NAME"] = "yunohost-bot"
|
|
||||||
my_env["GIT_AUTHOR_EMAIL"] = "yunohost@yunohost.org"
|
|
||||||
my_env["GIT_COMMITTER_NAME"] = "yunohost-bot"
|
|
||||||
my_env["GIT_COMMITTER_EMAIL"] = "yunohost@yunohost.org"
|
|
||||||
my_env["GITHUB_USER"] = login
|
|
||||||
my_env["GITHUB_TOKEN"] = token
|
|
||||||
|
|
||||||
|
|
||||||
class Repository:
|
|
||||||
def __init__(self, url, branch):
|
|
||||||
self.url = url
|
|
||||||
self.branch = branch
|
|
||||||
|
|
||||||
def __enter__(self):
|
|
||||||
self.temporary_directory = tempfile.TemporaryDirectory()
|
|
||||||
self.path = Path(self.temporary_directory.name)
|
|
||||||
self.run_command(
|
|
||||||
[
|
|
||||||
"git",
|
|
||||||
"clone",
|
|
||||||
self.url,
|
|
||||||
"--single-branch",
|
|
||||||
"--branch",
|
|
||||||
self.branch,
|
|
||||||
self.path,
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
|
||||||
return self
|
|
||||||
|
|
||||||
def run_command(
|
|
||||||
self, command: Union[str, list], capture_output=False
|
|
||||||
) -> Union[str, int]:
|
|
||||||
if isinstance(command, str):
|
|
||||||
kwargs = {"args": f"cd {self.path} && {command}", "shell": True, "env": my_env}
|
|
||||||
|
|
||||||
elif isinstance(command, list):
|
|
||||||
kwargs = {"args": command, "cwd": self.path, "env": my_env}
|
|
||||||
|
|
||||||
if capture_output:
|
|
||||||
return subprocess.check_output(**kwargs).decode()
|
|
||||||
else:
|
|
||||||
print(f"\033[1;31m>>\033[0m \033[0;34m{command}\033[0m")
|
|
||||||
return subprocess.check_call(**kwargs)
|
|
||||||
|
|
||||||
def file_exists(self, file_name: str) -> bool:
|
|
||||||
return (self.path / file_name).exists()
|
|
||||||
|
|
||||||
def read_file(self, file_name: str) -> str:
|
|
||||||
return open((self.path / file_name).resolve(), "r").read()
|
|
||||||
|
|
||||||
def write_file(self, file_name: str, content: str) -> None:
|
|
||||||
open((self.path / file_name).resolve(), "w").write(content)
|
|
||||||
|
|
||||||
def remove_file(self, file_name: str) -> None:
|
|
||||||
os.remove(self.path / file_name)
|
|
||||||
|
|
||||||
def append_to_file(self, file_name: str, content: str) -> None:
|
|
||||||
open((self.path / file_name).resolve(), "a").write(content)
|
|
||||||
|
|
||||||
def __repr__(self):
|
|
||||||
return f'<__main__.Repository "{self.url.split("@")[1]}" path="{self.path}">'
|
|
||||||
|
|
||||||
def __exit__(self, *args, **kwargs):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def extract_strings_to_translate_from_apps(apps, translations_repository):
|
def extract_strings_to_translate_from_apps(apps, translations_repository):
|
||||||
|
|
85
tools/translate_apps/base.py
Normal file
85
tools/translate_apps/base.py
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
import os
|
||||||
|
import tempfile
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
from typing import Union
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
github_webhook_secret = open("github_webhook_secret", "r").read().strip()
|
||||||
|
|
||||||
|
login = open("login").read().strip()
|
||||||
|
token = open("token").read().strip()
|
||||||
|
|
||||||
|
weblate_token = open("weblate_token").read().strip()
|
||||||
|
|
||||||
|
my_env = os.environ.copy()
|
||||||
|
my_env["GIT_TERMINAL_PROMPT"] = "0"
|
||||||
|
my_env["GIT_AUTHOR_NAME"] = "yunohost-bot"
|
||||||
|
my_env["GIT_AUTHOR_EMAIL"] = "yunohost@yunohost.org"
|
||||||
|
my_env["GIT_COMMITTER_NAME"] = "yunohost-bot"
|
||||||
|
my_env["GIT_COMMITTER_EMAIL"] = "yunohost@yunohost.org"
|
||||||
|
my_env["GITHUB_USER"] = login
|
||||||
|
my_env["GITHUB_TOKEN"] = token
|
||||||
|
|
||||||
|
|
||||||
|
class Repository:
|
||||||
|
def __init__(self, url, branch):
|
||||||
|
self.url = url
|
||||||
|
self.branch = branch
|
||||||
|
|
||||||
|
def __enter__(self):
|
||||||
|
self.temporary_directory = tempfile.TemporaryDirectory()
|
||||||
|
self.path = Path(self.temporary_directory.name)
|
||||||
|
self.run_command(
|
||||||
|
[
|
||||||
|
"git",
|
||||||
|
"clone",
|
||||||
|
self.url,
|
||||||
|
"--single-branch",
|
||||||
|
"--branch",
|
||||||
|
self.branch,
|
||||||
|
self.path,
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
return self
|
||||||
|
|
||||||
|
def run_command(
|
||||||
|
self, command: Union[str, list], capture_output=False
|
||||||
|
) -> Union[str, int, subprocess.CompletedProcess]:
|
||||||
|
if isinstance(command, str):
|
||||||
|
kwargs = {
|
||||||
|
"args": f"cd {self.path} && {command}",
|
||||||
|
"shell": True,
|
||||||
|
"env": my_env,
|
||||||
|
}
|
||||||
|
|
||||||
|
elif isinstance(command, list):
|
||||||
|
kwargs = {"args": command, "cwd": self.path, "env": my_env}
|
||||||
|
|
||||||
|
if capture_output:
|
||||||
|
return subprocess.check_output(**kwargs).decode()
|
||||||
|
else:
|
||||||
|
print(f"\033[1;31m>>\033[0m \033[0;34m{command}\033[0m")
|
||||||
|
return subprocess.check_call(**kwargs)
|
||||||
|
|
||||||
|
def file_exists(self, file_name: str) -> bool:
|
||||||
|
return (self.path / file_name).exists()
|
||||||
|
|
||||||
|
def read_file(self, file_name: str) -> str:
|
||||||
|
return open((self.path / file_name).resolve(), "r").read()
|
||||||
|
|
||||||
|
def write_file(self, file_name: str, content: str) -> None:
|
||||||
|
open((self.path / file_name).resolve(), "w").write(content)
|
||||||
|
|
||||||
|
def remove_file(self, file_name: str) -> None:
|
||||||
|
os.remove(self.path / file_name)
|
||||||
|
|
||||||
|
def append_to_file(self, file_name: str, content: str) -> None:
|
||||||
|
open((self.path / file_name).resolve(), "a").write(content)
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return f'<__main__.Repository "{self.url.split("@")[1]}" path="{self.path}">'
|
||||||
|
|
||||||
|
def __exit__(self, *args, **kwargs):
|
||||||
|
pass
|
|
@ -1,29 +1,13 @@
|
||||||
import os
|
|
||||||
import time
|
import time
|
||||||
import json
|
import json
|
||||||
import tempfile
|
|
||||||
import subprocess
|
|
||||||
|
|
||||||
from collections import defaultdict
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Union
|
from collections import defaultdict
|
||||||
|
|
||||||
import wlc
|
import wlc
|
||||||
import tomlkit
|
import tomlkit
|
||||||
|
|
||||||
github_webhook_secret = open("github_webhook_secret", "r").read().strip()
|
from base import Repository, login, token, weblate_token
|
||||||
|
|
||||||
login = open("login").read().strip()
|
|
||||||
token = open("token").read().strip()
|
|
||||||
|
|
||||||
weblate_token = open("weblate_token").read().strip()
|
|
||||||
|
|
||||||
my_env = os.environ.copy()
|
|
||||||
my_env["GIT_TERMINAL_PROMPT"] = "0"
|
|
||||||
my_env["GIT_AUTHOR_NAME"] = "yunohost-bot"
|
|
||||||
my_env["GIT_AUTHOR_EMAIL"] = "yunohost@yunohost.org"
|
|
||||||
my_env["GIT_COMMITTER_NAME"] = "yunohost-bot"
|
|
||||||
my_env["GIT_COMMITTER_EMAIL"] = "yunohost@yunohost.org"
|
|
||||||
|
|
||||||
|
|
||||||
def get_weblate_component(weblate, component_path):
|
def get_weblate_component(weblate, component_path):
|
||||||
|
@ -35,65 +19,6 @@ def get_weblate_component(weblate, component_path):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
class Repository:
|
|
||||||
def __init__(self, url, branch):
|
|
||||||
self.url = url
|
|
||||||
self.branch = branch
|
|
||||||
|
|
||||||
def __enter__(self):
|
|
||||||
self.temporary_directory = tempfile.TemporaryDirectory()
|
|
||||||
self.path = Path(self.temporary_directory.name)
|
|
||||||
self.run_command(
|
|
||||||
[
|
|
||||||
"git",
|
|
||||||
"clone",
|
|
||||||
self.url,
|
|
||||||
"--single-branch",
|
|
||||||
"--branch",
|
|
||||||
self.branch,
|
|
||||||
self.path,
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
|
||||||
return self
|
|
||||||
|
|
||||||
def run_command(
|
|
||||||
self, command: Union[str, list], capture_output=False
|
|
||||||
) -> Union[str, int]:
|
|
||||||
if isinstance(command, str):
|
|
||||||
kwargs = {"args": f"cd {self.path} && {command}", "shell": True}
|
|
||||||
|
|
||||||
elif isinstance(command, list):
|
|
||||||
kwargs = {"args": command, "cwd": self.path}
|
|
||||||
|
|
||||||
if capture_output:
|
|
||||||
return subprocess.check_output(**kwargs).decode()
|
|
||||||
else:
|
|
||||||
print(f"\033[1;31m>>\033[0m \033[0;34m{command}\033[0m")
|
|
||||||
return subprocess.check_call(**kwargs)
|
|
||||||
|
|
||||||
def file_exists(self, file_name: str) -> bool:
|
|
||||||
return (self.path / file_name).exists()
|
|
||||||
|
|
||||||
def read_file(self, file_name: str) -> str:
|
|
||||||
return open((self.path / file_name).resolve(), "r").read()
|
|
||||||
|
|
||||||
def write_file(self, file_name: str, content: str) -> None:
|
|
||||||
open((self.path / file_name).resolve(), "w").write(content)
|
|
||||||
|
|
||||||
def remove_file(self, file_name: str) -> None:
|
|
||||||
os.remove(self.path / file_name)
|
|
||||||
|
|
||||||
def append_to_file(self, file_name: str, content: str) -> None:
|
|
||||||
open((self.path / file_name).resolve(), "a").write(content)
|
|
||||||
|
|
||||||
def __repr__(self):
|
|
||||||
return f'<__main__.Repository "{self.url.split("@")[1]}" path="{self.path}">'
|
|
||||||
|
|
||||||
def __exit__(self, *args, **kwargs):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def extract_strings_to_translate_from_apps(apps, translations_repository):
|
def extract_strings_to_translate_from_apps(apps, translations_repository):
|
||||||
weblate = wlc.Weblate(key=weblate_token, url="https://translate.yunohost.org/api/")
|
weblate = wlc.Weblate(key=weblate_token, url="https://translate.yunohost.org/api/")
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue