From 474444fa9f0decb2d7734828c7f9d629535dcb94 Mon Sep 17 00:00:00 2001 From: "Mikey Lombardi (He/Him)" Date: Tue, 15 Nov 2022 10:19:33 -0600 Subject: [PATCH] (GH-198) Add `extended` option to hugo feature (#240) Prior to this change, the hugo feature only supported specifying the version of Hugo to install. Hugo is available in two builds: standard, which the feature already installs, and extended, which includes functionality for post-processing CSS/SCSS/SASS and JavaScript. This change adds a new `extended` option to the hugo feature, allowing users to specify that they require the extended build of Hugo. It defaults to `false` and installs the standard build of Hugo. - Resolves #198 --- src/hugo/devcontainer-feature.json | 7 ++++++- src/hugo/install.sh | 9 ++++++++- test/hugo/install_hugo_extended.sh | 12 ++++++++++++ test/hugo/scenarios.json | 11 +++++++++++ 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 test/hugo/install_hugo_extended.sh create mode 100644 test/hugo/scenarios.json diff --git a/src/hugo/devcontainer-feature.json b/src/hugo/devcontainer-feature.json index 7a96d85..37a805d 100644 --- a/src/hugo/devcontainer-feature.json +++ b/src/hugo/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "hugo", - "version": "1.0.6", + "version": "1.1.0", "name": "Hugo", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/hugo", "options": { @@ -11,6 +11,11 @@ ], "default": "latest", "description": "Select or enter a version." + }, + "extended": { + "type": "boolean", + "default": false, + "description": "Install Hugo extended for SASS/SCSS changes" } }, "containerEnv": { diff --git a/src/hugo/install.sh b/src/hugo/install.sh index 778b552..c5cb628 100755 --- a/src/hugo/install.sh +++ b/src/hugo/install.sh @@ -106,7 +106,14 @@ if ! hugo version &> /dev/null ; then arch="64bit" fi - hugo_filename="hugo_${VERSION}_Linux-${arch}.tar.gz" + # Install extended version of hugo if desired + if [ "${EXTENDED}" = "true" ]; then + extended="extended_" + else + extended="" + fi + + hugo_filename="hugo_${extended}${VERSION}_Linux-${arch}.tar.gz" curl -fsSLO --compressed "https://github.com/gohugoio/hugo/releases/download/v${VERSION}/${hugo_filename}" tar -xzf "$hugo_filename" -C "$installation_dir" diff --git a/test/hugo/install_hugo_extended.sh b/test/hugo/install_hugo_extended.sh new file mode 100644 index 0000000..4771d84 --- /dev/null +++ b/test/hugo/install_hugo_extended.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +# Ensure extended version is installed +check "extended_installed" bash -c "hugo version | grep extended" + +# Report result +reportResults diff --git a/test/hugo/scenarios.json b/test/hugo/scenarios.json new file mode 100644 index 0000000..4c093df --- /dev/null +++ b/test/hugo/scenarios.json @@ -0,0 +1,11 @@ +{ + "install_hugo_extended": { + "image": "mcr.microsoft.com/devcontainers/base", + "features": { + "hugo": { + "version": "latest", + "extended": true + } + } + } +} \ No newline at end of file