From eccf21edefdda412d5799c459a0557b8d2bbddd6 Mon Sep 17 00:00:00 2001 From: Hugo Sales Date: Sat, 26 Feb 2022 12:18:40 +0000 Subject: [PATCH] [TOOLS][PLUGINS][OAuth2] Add mechanism to allow plugins to have an install script. Add script for generating keys for OAuth --- Makefile | 5 ++++- bin/install_plugins.sh | 11 +++++++++++ docker/social/install.sh | 2 ++ plugins/OAuth2/bin/install.sh | 14 ++++++++++++++ 4 files changed, 31 insertions(+), 1 deletion(-) create mode 100755 bin/install_plugins.sh create mode 100755 plugins/OAuth2/bin/install.sh diff --git a/Makefile b/Makefile index b82c273724..c0c45c1c13 100644 --- a/Makefile +++ b/Makefile @@ -69,4 +69,7 @@ remove-file: flush-redis-cache: docker exec -it $(call translate-container-name,$(strip $(DIR))_redis_1) sh -c 'redis-cli flushall' -force-nuke-everything: down up flush-redis-cache database-force-nuke remove-var remove-file +install-plugins: + docker exec -it $(call translate-container-name,$(strip $(DIR))_php_1) /var/www/social/bin/install_plugins.sh + +force-nuke-everything: down remove-var remove-file up flush-redis-cache database-force-nuke install-plugins diff --git a/bin/install_plugins.sh b/bin/install_plugins.sh new file mode 100755 index 0000000000..952f8069f4 --- /dev/null +++ b/bin/install_plugins.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +for plugin in plugins/*; do + install="${plugin}/bin/install.sh" + if [ -x "${install}" ]; then + ( # subshell, to clear options/environment + set -x + "${install}" + ) + fi +done diff --git a/docker/social/install.sh b/docker/social/install.sh index 7f54e76a13..368315129d 100755 --- a/docker/social/install.sh +++ b/docker/social/install.sh @@ -32,6 +32,8 @@ if [ ${DB_EXISTS} -ne 0 ]; then php bin/console doctrine:schema:create || exit 1 php bin/console app:populate_initial_values || exit 1 + ./bin/install_plugins.sh + echo "GNU social is installed" else echo "GNU social is already installed" diff --git a/plugins/OAuth2/bin/install.sh b/plugins/OAuth2/bin/install.sh new file mode 100755 index 0000000000..600a20a386 --- /dev/null +++ b/plugins/OAuth2/bin/install.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +cd /var/www/social/file || exit 1 + +mkdir -p oauth && cd oauth || exit 1 + +if [ ! -f private.key ]; then + openssl genrsa -out private.key 4096 + openssl rsa -in private.key -pubout -out public.key + + chown www-data:www-data private.key public.key +else + echo "Keys exist, nothing to do" +fi