Unverified Commit 7763e0b7 authored by Ross Smith's avatar Ross Smith Committed by GitHub

Install PowerShell Modules (#427)

* InstallBicep

* Add test for InstallBicep

* Install pwsh Modules

* Script rename

* Add -Command to test

* Check version

* Install the module for all users

* Adding terminating lines to scripts

* Update src/powershell/install.sh
Co-authored-by: 's avatarSamruddhi Khandale <skhandale@microsoft.com>

* Update src/powershell/install.sh
Co-authored-by: 's avatarSamruddhi Khandale <skhandale@microsoft.com>

* Removed comments in Readme

* Remove Bicep from PowerShell install

* Increased version number

* Update Minor version rather than patch

---------
Co-authored-by: 's avatarSamruddhi Khandale <skhandale@microsoft.com>
parent fbdc4556
{ {
"id": "powershell", "id": "powershell",
"version": "1.0.6", "version": "1.1.0",
"name": "PowerShell", "name": "PowerShell",
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/powershell", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/powershell",
"description": "Installs PowerShell along with needed dependencies. Useful for base Dockerfiles that often are missing required install dependencies like gpg.", "description": "Installs PowerShell along with needed dependencies. Useful for base Dockerfiles that often are missing required install dependencies like gpg.",
...@@ -14,8 +14,13 @@ ...@@ -14,8 +14,13 @@
], ],
"default": "latest", "default": "latest",
"description": "Select or enter a version of PowerShell." "description": "Select or enter a version of PowerShell."
} },
}, "modules": {
"type": "string",
"default": "",
"description": "Optional comma separated list of PowerShell modules to install."
}
},
"installsAfter": [ "installsAfter": [
"ghcr.io/devcontainers/features/common-utils" "ghcr.io/devcontainers/features/common-utils"
] ]
......
...@@ -13,6 +13,7 @@ set -e ...@@ -13,6 +13,7 @@ set -e
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
POWERSHELL_VERSION=${VERSION:-"latest"} POWERSHELL_VERSION=${VERSION:-"latest"}
POWERSHELL_MODULES="${MODULES}"
MICROSOFT_GPG_KEYS_URI="https://packages.microsoft.com/keys/microsoft.asc" MICROSOFT_GPG_KEYS_URI="https://packages.microsoft.com/keys/microsoft.asc"
POWERSHELL_ARCHIVE_ARCHITECTURES="amd64" POWERSHELL_ARCHIVE_ARCHITECTURES="amd64"
...@@ -149,6 +150,17 @@ if [ "${use_github}" = "true" ]; then ...@@ -149,6 +150,17 @@ if [ "${use_github}" = "true" ]; then
install_using_github install_using_github
fi fi
# If PowerShell modules are requested, loop through and install
if [ ${#POWERSHELL_MODULES[@]} -gt 0 ]; then
echo "Installing PowerShell Modules: ${POWERSHELL_MODULES}"
modules=(`echo ${POWERSHELL_MODULES} | tr ',' ' '`)
for i in "${modules[@]}"
do
echo "Installing ${i}"
pwsh -Command "Install-Module -Name ${i} -AllowClobber -Force -Scope AllUsers" || continue
done
fi
# Clean up # Clean up
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
......
#!/bin/bash
set -e
# Import test library for `check` command
source dev-container-features-test-lib
# Extension-specific tests
check "az.resources" pwsh -Command "(Get-Module -ListAvailable -Name Az.Resources).Version.ToString()"
check "az.storage" pwsh -Command "(Get-Module -ListAvailable -Name Az.Storage).Version.ToString()"
# Report result
reportResults
{
"install_modules": {
"image": "mcr.microsoft.com/devcontainers/base:jammy",
"features": {
"powershell": {
"modules": "az.resources, az.storage"
}
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment