diff options
author | Jacob Woffenden <jacob@woffenden.io> | 2022-12-10 01:08:20 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-10 01:08:20 +0300 |
commit | aae9de7ebc96170ddbaf8996d8ee2289176000aa (patch) | |
tree | 1ab29f71f3ce51f228a3b98584bd02ffa53aef0a | |
parent | e28358e33b98998e00c2c62d5d561626d96bed24 (diff) |
Change default shell if installing ZSH (#325)
* Added new option to configure zsh as default shell
Added test scenario
Bumped feature version
* Update test/common-utils/scenarios.json
Co-authored-by: Samruddhi Khandale <skhandale@microsoft.com>
* Update src/common-utils/devcontainer-feature.json
Co-authored-by: Samruddhi Khandale <skhandale@microsoft.com>
* Update test/common-utils/configure_zsh_as_default_shell.sh
Co-authored-by: Samruddhi Khandale <skhandale@microsoft.com>
Co-authored-by: Samruddhi Khandale <skhandale@microsoft.com>
-rw-r--r-- | src/common-utils/devcontainer-feature.json | 7 | ||||
-rwxr-xr-x | src/common-utils/install.sh | 7 | ||||
-rw-r--r-- | test/common-utils/configure_zsh_as_default_shell.sh | 12 | ||||
-rw-r--r-- | test/common-utils/scenarios.json | 10 |
4 files changed, 35 insertions, 1 deletions
diff --git a/src/common-utils/devcontainer-feature.json b/src/common-utils/devcontainer-feature.json index 812e5e9..d2a97d6 100644 --- a/src/common-utils/devcontainer-feature.json +++ b/src/common-utils/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "common-utils", - "version": "1.1.6", + "version": "1.2.0", "name": "Common Debian Utilities", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/common-utils", "description": "Installs a set of common command line utilities, Oh My Zsh!, and sets up a non-root user.", @@ -10,6 +10,11 @@ "default": true, "description": "Install ZSH?" }, + "configureZshAsDefaultShell": { + "type": "boolean", + "default": false, + "description": "Change default shell to ZSH?" + }, "installOhMyZsh": { "type": "boolean", "default": true, diff --git a/src/common-utils/install.sh b/src/common-utils/install.sh index 5530b96..eb0e624 100755 --- a/src/common-utils/install.sh +++ b/src/common-utils/install.sh @@ -13,6 +13,7 @@ set -e rm -rf /var/lib/apt/lists/* INSTALL_ZSH="${INSTALLZSH:-"true"}" +CONFIGURE_ZSH_AS_DEFAULT_SHELL="${CONFIGUREZSHASDEFAULTSHELL:-"false"}" INSTALL_OH_MY_ZSH="${INSTALLOHMYZSH:-"true"}" UPGRADE_PACKAGES="${UPGRADEPACKAGES:-"true"}" USERNAME="${USERNAME:-"${_REMOTE_USER:-"automatic"}"}" @@ -378,6 +379,12 @@ if [ "${INSTALL_ZSH}" = "true" ]; then ZSH_ALREADY_INSTALLED="true" fi + # Change shell of determined user + if [[ "${CONFIGURE_ZSH_AS_DEFAULT_SHELL}" == "true" ]]; then + chsh --shell /bin/zsh ${USERNAME} + fi + + # Adapted, simplified inline Oh My Zsh! install steps that adds, defaults to a codespaces theme. # See https://github.com/ohmyzsh/ohmyzsh/blob/master/tools/install.sh for official script. oh_my_install_dir="${user_rc_path}/.oh-my-zsh" diff --git a/test/common-utils/configure_zsh_as_default_shell.sh b/test/common-utils/configure_zsh_as_default_shell.sh new file mode 100644 index 0000000..e5cc89e --- /dev/null +++ b/test/common-utils/configure_zsh_as_default_shell.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +# Definition specific tests +check "default-shell-is-zsh" bash -c "getent passwd $(whoami) | awk -F: '{ print $7 }' | grep '/bin/zsh'" + +# Report result +reportResults diff --git a/test/common-utils/scenarios.json b/test/common-utils/scenarios.json new file mode 100644 index 0000000..aa36fcb --- /dev/null +++ b/test/common-utils/scenarios.json @@ -0,0 +1,10 @@ +{ + "configure_zsh_as_default_shell": { + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "features": { + "common-utils": { + "configureZshAsDefaultShell": true + } + } + } +} |