diff options
author | Josh Spicer <josh@joshspicer.com> | 2022-05-12 23:10:51 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-12 23:10:51 +0300 |
commit | 3a277ad757dbc51a43a5dd452d030c67a49d49f1 (patch) | |
tree | 7d4f27493f946d8792b2ff5b6383258cb9f03ce0 /src/jekyll | |
parent | 2707a37ca0d4a45c7487f856bf95f8c5e10bce94 (diff) |
restructure and update cli (#11)
* restructure and update cli
* typo
Diffstat (limited to 'src/jekyll')
-rw-r--r-- | src/jekyll/feature.json | 16 | ||||
-rw-r--r-- | src/jekyll/install.sh | 60 |
2 files changed, 76 insertions, 0 deletions
diff --git a/src/jekyll/feature.json b/src/jekyll/feature.json new file mode 100644 index 0000000..852aa30 --- /dev/null +++ b/src/jekyll/feature.json @@ -0,0 +1,16 @@ +{ + "id": "jekyll", + "name": "Jekyll", + "options": { + "version": { + "type": "string", + "proposals": ["latest"], + "default": "latest", + "description": "Select or enter a version." + } + }, + "install": { + "app": "", + "file": "install.sh" + } +} diff --git a/src/jekyll/install.sh b/src/jekyll/install.sh new file mode 100644 index 0000000..53efa82 --- /dev/null +++ b/src/jekyll/install.sh @@ -0,0 +1,60 @@ +#!/usr/bin/env bash +#------------------------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information. +#------------------------------------------------------------------------------------------------------------- +# +# Docs: https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/hugo.md +# Maintainer: The VS Code and Codespaces Teams +# +# Syntax: ./jekyll-debian.sh [Jekyll version] [Non-root user] [Add rc files flag] + +VERSION=${1:-"latest"} +USERNAME=${2:-"automatic"} + +set -e + +# If in automatic mode, determine if a user already exists, if not use codespace +if [ "${USERNAME}" = "auto" ] || [ "${USERNAME}" = "automatic" ]; then + USERNAME="" + POSSIBLE_USERS=("vscode" "node" "codespace" "$(awk -v val=1000 -F ":" '$3==val{print $1}' /etc/passwd)") + for CURRENT_USER in ${POSSIBLE_USERS[@]}; do + if id -u ${CURRENT_USER} > /dev/null 2>&1; then + USERNAME=${CURRENT_USER} + break + fi + done + if [ "${USERNAME}" = "" ]; then + USERNAME=codespace + fi +elif [ "${USERNAME}" = "none" ]; then + USERNAME=root + USER_UID=0 + USER_GID=0 +fi + +# Use sudo to run as non-root user is not already running +sudoUserIf() +{ + if [ "$(id -u)" -eq 0 ] && [ "${USERNAME}" != "root" ]; then + sudo -u ${USERNAME} "$@" + else + "$@" + fi +} + +# If we don't yet have Ruby installed, exit. +if ! /usr/local/rvm/rubies/default/bin/ruby --version > /dev/null ; then + echo "You need to install Ruby before installing Jekyll." + exit 1 +fi + +# If we don't already have Jekyll installed, install it now. +if ! jekyll --version > /dev/null ; then + echo "Installing Jekyll..." + if [ "${VERSION}" = "latest" ]; then + PATH="/usr/local/rvm/rubies/default/bin:${PATH}" /usr/local/rvm/rubies/default/bin/gem install jekyll + else + PATH="/usr/local/rvm/rubies/default/bin:${PATH}" /usr/local/rvm/rubies/default/bin/gem install jekyll -v "${VERSION}" + fi +fi |