1
0
Fork 0
mirror of https://github.com/YunoHost/apps.git synced 2024-09-03 20:06:07 +02:00

Misc fixes + Trash everything about fpm_usage/footprint + Autopatch upload_max_filesize/memory_limit + Encourge people to use ynh_app_setting_set_default instead of [ -z ${foo:-}] trick in upgrade

This commit is contained in:
Alexandre Aubin 2024-06-23 00:58:43 +02:00
parent c98df3c24d
commit 1a72c1eb21

View file

@ -37,11 +37,6 @@ def cleanup():
"ynh_print_log",
"ynh_print_OFF",
"ynh_print_ON",
"fpm_usage=low",
"fpm_usage=\"low\"",
"fpm_footprint=low",
"fpm_footprint=\"low\"",
"fpm_free_footprint=",
]
replaces = [
@ -143,6 +138,7 @@ def cleanup():
(r" ?--composerversion=\S*", ""),
(r" ?--usage=\S*", ""),
(r" ?--footprint=\S*", ""),
(r"--group=www-data", "# FIXME : --group=www-data to be replaced with php_group=www-data to be added in _common.sh"),
(r"YNH_COMPOSER_VERSION=", "composer_version="),
(r' --workdir="\$install_dir"', ""),
(r'--workdir=\$install_dir ', ""),
@ -154,6 +150,14 @@ def cleanup():
(r"ynh_install_composer", "ynh_composer_install\nynh_composer_exec install --no-dev "),
(r'--install_args="?([^"]+)"?(\s|$)', "\\1\\2"),
(r'--commands="([^"]+)"(\s|$)', "\\1\\2"),
(r"(^fpm_usage=)", "# REMOVEME ? Everything about fpm_usage is removed in helpers2.1... | \\1"),
(r"(^.*\$fpm_usage)", "# REMOVEME ? Everything about fpm_usage is removed in helpers2.1... | \\1"),
(r"(^fpm_footprint=)", "# REMOVEME ? Everything about fpm_footprint is removed in helpers2.1... | \\1"),
(r"(^.*\$fpm_footprint)", "# REMOVEME ? Everything about fpm_footprint is removed in helpers2.1... | \\1"),
(r"(^set__fpm_footprint)", "# REMOVEME ? Everything about fpm_footprint is removed in helpers2.1... | \\1"),
(r"(^fpm_free_footprint=)", "# REMOVEME ? Everything about fpm_free_footprint is removed in helpers2.1... | \\1"),
(r"(^.*\$fpm_free_footprint)", "# REMOVEME ? Everything about fpm_free_footprint is removed in helpers2.1... | \\1"),
(r"(^set__fpm_free_footprint)", "# REMOVEME ? Everything about fpm_free_footprint is removed in helpers2.1... | \\1"),
# Nodejs
(r'"?\$?ynh_node"?', "node"),
(r"NODEJS_VERSION=", "nodejs_version="),
@ -233,22 +237,12 @@ def cleanup():
("Configuring a systemd service...", "Configuring $app's systemd service..."),
("Stopping a systemd service...", "Stopping $app's systemd service..."),
("Starting a systemd service...", "Starting $app's systemd service..."),
# Recommend ynh_app_setting_set_default
(r"( *if \[.*-z.*:-}.*\].*\n?.*then\n\s+(\S+)=(.+)\n\s+ynh_app_setting_set.*\n\s*fi\n)", "# FIXME: maybe replace with: ynh_app_setting_set_default --key=\\2 --value=\\3\n\\1"),
# Trailing spaces
(r"\s+$", "\n"),
]
conf_replaces = [
(r"__NAME__", "__APP__"),
(r"__NAMETOCHANGE__", "__APP__"),
("__YNH_NODE__", "node"),
("__YNH_NPM__", "npm"),
("__YNH_NODE_LOAD_PATH__", "PATH=__PATH_WITH_NODEJS__"),
("__YNH_RUBY_LOAD_PATH__", "PATH=__PATH_WITH_RUBY__"),
("__YNH_GO_LOAD_PATH__", "PATH=__PATH_WITH_GO__"),
("__YNH_RUBY__", "ruby"),
("__PHPVERSION__", "__PHP_VERSION__"),
]
replaces = [(re.compile(pattern, flags=re.M), replace) for pattern, replace in replaces]
comment_blocks_to_cleanup = [re.compile(pattern, flags=re.M) for pattern in comment_blocks_to_cleanup]
@ -282,13 +276,75 @@ def cleanup():
for remove in removememaybes:
content = content.replace(remove, r"#REMOVEME? " + remove)
# Remove trailing spaces, for some reason we gotta have re.M flag ...
#content = re.sub(r"\s+$", "\n", content, flags=re.M)
open(script, "w").write(content)
for pattern, replace in conf_replaces:
os.system(f"sed -i'' 's@{pattern}@{replace}@g' $(find conf/ -type f)")
# Specific PHP FPM conf patch
if os.path.exists("conf/extra_php-fpm.conf"):
content = open("conf/extra_php-fpm.conf").read()
pattern_upload_max_filesize = r"\nphp_\S*\[upload_max_filesize\] = (\S*)"
pattern_post_max_size = r"\nphp_\S*\[post_max_size\] = (\S*)"
pattern_memory_limit = r"\nphp_\S*\[memory_limit\] = (\S*)"
upload_max_filesize = re.findall(pattern_upload_max_filesize, "\n" + content)
memory_limit = re.findall(pattern_memory_limit, "\n" + content)
if memory_limit:
content = re.sub(pattern_memory_limit, "", content)
memory_limit = memory_limit[0]
install = open("scripts/install").read()
install = re.sub("(source /usr/share/yunohost/helpers)", "\\1\n\nynh_app_setting_set --key=php_memory_limit --value=" + memory_limit, install)
open("scripts/install", "w").write(install)
upgrade = open("scripts/upgrade").read()
upgrade = re.sub("(source /usr/share/yunohost/helpers)", "\\1\n\nynh_app_setting_set_default --key=php_memory_limit --value=" + memory_limit, upgrade)
open("scripts/upgrade", "w").write(upgrade)
if upload_max_filesize:
content = re.sub(pattern_upload_max_filesize, "", content)
content = re.sub(pattern_post_max_size, "", content)
upload_max_filesize = upload_max_filesize[0]
if upload_max_filesize != "50M":
install = open("scripts/install").read()
install = re.sub("(source /usr/share/yunohost/helpers)", "\\1\n\nynh_app_setting_set --key=php_upload_max_filesize --value=" + upload_max_filesize, install)
open("scripts/install", "w").write(install)
upgrade = open("scripts/upgrade").read()
upgrade = re.sub("(source /usr/share/yunohost/helpers)", "\\1\n\nynh_app_setting_set_default --key=php_upload_max_filesize --value=" + upload_max_filesize, upgrade)
open("scripts/upgrade", "w").write(upgrade)
new_conf_is_empty = all(line.strip() == "" or line.strip()[0] == ";" for line in content.split("\n"))
if new_conf_is_empty:
os.system("git rm --quiet -f conf/extra_php-fpm.conf")
else:
open("conf/extra_php-fpm.conf", "w").write(content)
conf_replaces = [
(r"__NAME__", "__APP__"),
(r"__NAMETOCHANGE__", "__APP__"),
("__YNH_NODE__", "node"),
("__YNH_NPM__", "npm"),
("__YNH_NODE_LOAD_PATH__", "PATH=__PATH_WITH_NODEJS__"),
("__YNH_RUBY_LOAD_PATH__", "PATH=__PATH_WITH_RUBY__"),
("__YNH_GO_LOAD_PATH__", "PATH=__PATH_WITH_GO__"),
("__YNH_RUBY__", "ruby"),
("__PHPVERSION__", "__PHP_VERSION__"),
]
for currentpath, folders, files in os.walk("conf"):
for file in files:
path = os.path.join(currentpath, file)
try:
content = open(path).read()
except UnicodeDecodeError:
# Not text?
continue
for pattern, replace in conf_replaces:
content = content.replace(pattern, replace)
open(path, "w").write(content)
git_cmds = [
"git rm --quiet sources/extra_files/*/.gitignore 2>/dev/null",
@ -303,7 +359,7 @@ def cleanup():
"test -e config_panel.toml.example && git rm --quiet config_panel.toml.example",
"git rm $(find ./ -name .DS_Store) 2>/dev/null",
r"grep -q '\*\~' .gitignore 2>/dev/null || echo '*~' >> .gitignore",
r"grep -q '\~.sw\[op\]' .gitignore || echo '~.sw[op]' >> .gitignore",
r"grep -q '\*.sw\[op\]' .gitignore || echo '*.sw[op]' >> .gitignore",
r"grep -q '\.DS_Store' .gitignore || echo '.DS_Store' >> .gitignore",
"git add .gitignore",
]