diff --git a/inventory/vagrant/group_vars/webserver/general.yml b/inventory/vagrant/group_vars/webserver/general.yml index 6646dd9b..2785f947 100644 --- a/inventory/vagrant/group_vars/webserver/general.yml +++ b/inventory/vagrant/group_vars/webserver/general.yml @@ -1,3 +1,5 @@ --- webserver_app: yes +openseadragon_iiiv_set_var: yes +openseadragon_iiiv_server: http://localhost:8080/cantaloupe/iiif/2 diff --git a/roles/internal/openseadragon/defaults/main.yml b/roles/internal/openseadragon/defaults/main.yml new file mode 100644 index 00000000..ceaa891b --- /dev/null +++ b/roles/internal/openseadragon/defaults/main.yml @@ -0,0 +1,11 @@ +--- + +openseadragon_composer_item: "islandora/openseadragon:dev-8.x-1.x" +openseadragon_composer_root: "/var/www/html/drupal" +openseadragon_sites: + - default +openseadragon_version: 2.2.1 +openseadragon_temp_folder: /tmp + +openseadragon_iiiv_set_var: false +openseadragon_iiiv_server: diff --git a/roles/internal/openseadragon/tasks/config.yml b/roles/internal/openseadragon/tasks/config.yml new file mode 100644 index 00000000..02f67df3 --- /dev/null +++ b/roles/internal/openseadragon/tasks/config.yml @@ -0,0 +1,42 @@ +--- + +- name: Check if modules are enabled + shell: drush pm-info openseadragon --format=json + args: + chdir: "{{ openseadragon_composer_root }}/web" + register: openseadragon_enable_module_status + changed_when: False + check_mode: no + +- name: Enable modules + shell: drush -y -u 1 en openseadragon + args: + chdir: "{{ openseadragon_composer_root }}/web" + when: (openseadragon_enable_module_status.stdout|from_json).openseadragon.status != 'enabled' + +- name: Copy openseadragon library definition to correct location. + copy: + remote_src: yes + src: "{{ openseadragon_composer_root }}/web/modules/contrib/openseadragon/openseadragon.json" + dest: "{{ openseadragon_composer_root }}/web/sites/{{ item }}/files/library-definitions" + with_items: "{{ openseadragon_sites }}" + +- name: Check IIIF URL + command: + drush cget openseadragon.settings iiif_server --format=json + args: + chdir: "{{ openseadragon_composer_root }}/web" + when: openseadragon_iiiv_set_var + changed_when: false + failed_when: false + register: openseadragon_iiiv_status + +- name: Set IIIF URL + command: + drush cset openseadragon.settings iiif_server {{ openseadragon_iiiv_server }} --yes + args: + chdir: "{{ openseadragon_composer_root }}/web" + when: > + not openseadragon_iiiv_status.skipped|default(false) and + (openseadragon_iiiv_status.rc == 1 or + (openseadragon_iiiv_status.stdout|from_json)['openseadragon.settings:iiif_server'] != openseadragon_iiiv_server) diff --git a/roles/internal/openseadragon/tasks/install.yml b/roles/internal/openseadragon/tasks/install.yml new file mode 100644 index 00000000..8637aba0 --- /dev/null +++ b/roles/internal/openseadragon/tasks/install.yml @@ -0,0 +1,30 @@ +--- + +- name: Install Openseadragon with composer + composer: + command: require + arguments: "{{ openseadragon_composer_item }}" + working_dir: "{{ openseadragon_composer_root }}" + become: no + +- name: Check if Seadragon Library Exists + stat: + path: "{{ openseadragon_composer_root }}/web/sites/all/assets/vendor/openseadragon" + register: openseadragon_library_dir + +- name: Create folder for library + file: + state: directory + path: "{{ openseadragon_composer_root }}/web/sites/all/assets/vendor" + when: not openseadragon_library_dir.stat.exists + +- name: Unarchive seadragon library + unarchive: + remote_src: yes + src: https://github.com/openseadragon/openseadragon/releases/download/v{{ openseadragon_version }}/openseadragon-bin-{{ openseadragon_version }}.tar.gz + dest: "{{ openseadragon_temp_folder }}" + when: not openseadragon_library_dir.stat.exists + +- name: Move library into place + command: mv {{ openseadragon_temp_folder }}/openseadragon-bin-{{ openseadragon_version }} {{ openseadragon_composer_root }}/web/sites/all/assets/vendor/openseadragon + when: not openseadragon_library_dir.stat.exists diff --git a/roles/internal/openseadragon/tasks/main.yml b/roles/internal/openseadragon/tasks/main.yml new file mode 100644 index 00000000..341b3530 --- /dev/null +++ b/roles/internal/openseadragon/tasks/main.yml @@ -0,0 +1,11 @@ +--- + +- include: install.yml + tags: + - openseadragon + - openseadragon-install + +- include: config.yml + tags: + - openseadragon + - openseadragon-config diff --git a/webserver.yml b/webserver.yml index 823f9cc5..84ea9cb5 100644 --- a/webserver.yml +++ b/webserver.yml @@ -11,4 +11,5 @@ - drush - drupal-console - drupal + - openseadragon - webserver-app