From 546bc5a4453e27eea35858742a722975b01bd873 Mon Sep 17 00:00:00 2001 From: cronekorkn Date: Fri, 15 Mar 2024 15:46:51 +0100 Subject: [PATCH] wip --- bundles/freescout/items.py | 28 ++++++++++++--------- bundles/freescout/metadata.py | 46 +++++++++++++++++------------------ libs/tools.py | 2 +- 3 files changed, 40 insertions(+), 36 deletions(-) diff --git a/bundles/freescout/items.py b/bundles/freescout/items.py index 8661d8b..560c60d 100644 --- a/bundles/freescout/items.py +++ b/bundles/freescout/items.py @@ -41,15 +41,19 @@ actions = { }, } -# files = { -# '/opt/freescout/.env': { -# 'content': '\n'.join( -# f'{k}={v}' for k, v in -# sorted(node.metadata.get('freescout/env').items()) -# ), -# 'needs': [ -# 'directory:/opt/freescout', -# 'action:clone_freescout', -# ], -# }, -# } +files = { + '/opt/freescout/.env': { + # https://github.com/freescout-helpdesk/freescout/blob/dist/.env.example + # Every time you are making changes in .env file, in order changes to take an effect you need to run: + # ´sudo su - www-data -c 'php /opt/freescout/artisan freescout:clear-cache' -s /bin/bash´ + 'owner': 'www-data', + 'content': '\n'.join( + f'{k}={v}' for k, v in + sorted(node.metadata.get('freescout/env').items()) + ) + '\n', + 'needs': [ + 'directory:/opt/freescout', + 'action:clone_freescout', + ], + }, +} diff --git a/bundles/freescout/metadata.py b/bundles/freescout/metadata.py index 8679a54..3a803f6 100644 --- a/bundles/freescout/metadata.py +++ b/bundles/freescout/metadata.py @@ -16,18 +16,18 @@ defaults = { 'php-intl': {}, }, }, - # 'freescout': { - # 'env': { - # 'APP_TIMEZONE': 'Europe/Berlin', - # 'DB_CONNECTION': 'pgsql', - # 'DB_HOST': '127.0.0.1', - # 'DB_PORT': '5432', - # 'DB_DATABASE': 'freescout', - # 'DB_USERNAME': 'freescout', - # 'DB_PASSWORD': database_password, - # 'APP_KEY': 'base64:' + repo.vault.random_bytes_as_base64_for(f'{node.name} freescout APP_KEY', length=32).value - # }, - # }, + 'freescout': { + 'env': { + 'APP_TIMEZONE': 'Europe/Berlin', + 'DB_CONNECTION': 'pgsql', + 'DB_HOST': '127.0.0.1', + 'DB_PORT': '5432', + 'DB_DATABASE': 'freescout', + 'DB_USERNAME': 'freescout', + 'DB_PASSWORD': database_password, + 'APP_KEY': 'base64:' + repo.vault.random_bytes_as_base64_for(f'{node.name} freescout APP_KEY', length=32).value + }, + }, 'php': { 'php.ini': { 'cgi': { @@ -57,17 +57,17 @@ defaults = { } -# @metadata_reactor.provides( -# 'freescout/env/APP_URL', -# ) -# def freescout(metadata): -# return { -# 'freescout': { -# 'env': { -# 'APP_URL': 'https://' + metadata.get('freescout/domain') + '/', -# }, -# }, -# } +@metadata_reactor.provides( + 'freescout/env/APP_URL', +) +def freescout(metadata): + return { + 'freescout': { + 'env': { + 'APP_URL': 'https://' + metadata.get('freescout/domain') + '/', + }, + }, + } @metadata_reactor.provides( diff --git a/libs/tools.py b/libs/tools.py index ac4856d..cbbe27c 100644 --- a/libs/tools.py +++ b/libs/tools.py @@ -91,4 +91,4 @@ def require_bundle(node, bundle, hint=''): from shlex import quote def run_as(user, command): - return f'sudo su - {user} -c {quote(command)} -s /bin/bash' + return f'sudo su - {user} -s /bin/bash -c {quote(command)}'