From 8efa3fe0b489fb4a235adfd81807ddc8de2ae7e2 Mon Sep 17 00:00:00 2001 From: rnsrk Date: Wed, 22 May 2024 09:14:28 +0200 Subject: [PATCH] add iipmooviewer and mirador libraries --- .../instances/runtime/install_iipmooviewer.sh | 17 +++++++ .../instances/runtime/install_mirador.sh | 14 ++++++ .../server/admin/socket/actions/libraries.go | 44 +++++++++++++++++++ internal/dis/distillery.go | 2 + 4 files changed, 77 insertions(+) create mode 100644 internal/dis/component/instances/runtime/install_iipmooviewer.sh create mode 100644 internal/dis/component/instances/runtime/install_mirador.sh diff --git a/internal/dis/component/instances/runtime/install_iipmooviewer.sh b/internal/dis/component/instances/runtime/install_iipmooviewer.sh new file mode 100644 index 0000000..c620737 --- /dev/null +++ b/internal/dis/component/instances/runtime/install_iipmooviewer.sh @@ -0,0 +1,17 @@ +#!/bin/bash +set -e + +echo "=> Setting up filesystem permissions" +chmod 777 /var/www/data/project/web/sites/default/ +trap "chmod 755 /var/www/data/project/web/sites/default/" EXIT + +echo "=> Download 'IIPMooViewer' repo" +wget https://github.com/ruven/iipmooviewer/archive/refs/heads/master.zip -P /var/www/data/project/web/sites/default/libraries/ +echo "=> Unzip 'IIPMooViewer' repo" +unzip /var/www/data/project/web/sites/default/libraries/master.zip -d web/libraries/ +echo "=> Remove 'IIPMooViewer' zipped package" +rm -r /var/www/data/project/web/sites/default/libraries/master.zip +echo "=> Rename 'IIPMooViewer' library" +mv /var/www/data/project/web/sites/default/libraries/iipmooviewer-master web/libraries/iipmooviewer + +echo "=> Done" \ No newline at end of file diff --git a/internal/dis/component/instances/runtime/install_mirador.sh b/internal/dis/component/instances/runtime/install_mirador.sh new file mode 100644 index 0000000..34a3e85 --- /dev/null +++ b/internal/dis/component/instances/runtime/install_mirador.sh @@ -0,0 +1,14 @@ +#!/bin/bash +set -e + +echo "=> Setting up filesystem permissions" +chmod 777 /var/www/data/project/web/sites/default/ +trap "chmod 755 /var/www/data/project/web/sites/default/" EXIT + +echo "=> Creating 'sites/default/libraries/wisski-mirador-integration/' directory" +mkdir -p /var/www/data/project/web/sites/default/libraries/wisski-mirador-integration + +echo "=> Downloading 'mirador-integration.js'" +curl -L https://raw.githubusercontent.com/rnsrk/wisski-mirador-integration/main/mirador-integration.js -o /var/www/data/project/web/sites/default/libraries/wisski-mirador-integration/mirador-integration.js + +echo "=> Done" \ No newline at end of file diff --git a/internal/dis/component/server/admin/socket/actions/libraries.go b/internal/dis/component/server/admin/socket/actions/libraries.go index c2095b7..65e8872 100644 --- a/internal/dis/component/server/admin/socket/actions/libraries.go +++ b/internal/dis/component/server/admin/socket/actions/libraries.go @@ -55,3 +55,47 @@ func (*InstallDompurifyJS) Action() InstanceAction { func (*InstallDompurifyJS) Act(ctx context.Context, instance *wisski.WissKI, in io.Reader, out io.Writer, params ...string) error { return instance.Barrel().Shell(ctx, stream.NewIOStream(out, out, nil), "/runtime/install_dompurify.sh") } + +type InstallMiradorJS struct { + component.Base +} + +var ( + _ WebsocketInstanceAction = (*InstallMiradorJS)(nil) +) + +func (*InstallMiradorJS) Action() InstanceAction { + return InstanceAction{ + Action: Action{ + Name: "install-mirador-js", + Scope: scopes.ScopeUserAdmin, + NumParams: 0, + }, + } +} + +func (*InstallMiradorJS) Act(ctx context.Context, instance *wisski.WissKI, in io.Reader, out io.Writer, params ...string) error { + return instance.Barrel().Shell(ctx, stream.NewIOStream(out, out, nil), "/runtime/install_mirador.sh") +} + +type InstallIIPMooViewerJS struct { + component.Base +} + +var ( + _ WebsocketInstanceAction = (*InstallIIPMooViewerJS)(nil) +) + +func (*InstallIIPMooViewerJS) Action() InstanceAction { + return InstanceAction{ + Action: Action{ + Name: "install-iipmooviewer-js", + Scope: scopes.ScopeUserAdmin, + NumParams: 0, + }, + } +} + +func (*InstallIIPMooViewerJS) Act(ctx context.Context, instance *wisski.WissKI, in io.Reader, out io.Writer, params ...string) error { + return instance.Barrel().Shell(ctx, stream.NewIOStream(out, out, nil), "/runtime/install_iipmooviewer.sh") +} diff --git a/internal/dis/distillery.go b/internal/dis/distillery.go index 8b3c11c..863c2b5 100644 --- a/internal/dis/distillery.go +++ b/internal/dis/distillery.go @@ -229,6 +229,8 @@ func (dis *Distillery) allComponents(context *lifetime.Registry[component.Compon lifetime.Place[*actions.Cron](context) lifetime.Place[*actions.InstallColorboxJS](context) lifetime.Place[*actions.InstallDompurifyJS](context) + lifetime.Place[*actions.InstallMiradorJS](context) + lifetime.Place[*actions.InstallIIPMooViewerJS](context) lifetime.Place[*actions.Start](context) lifetime.Place[*actions.Stop](context) lifetime.Place[*actions.Purge](context)