From 6f91dd61353f82b412066bea76cae1be8d40fc8a Mon Sep 17 00:00:00 2001 From: alfeilex <101652401+alfeilex@users.noreply.github.com> Date: Thu, 5 May 2022 11:32:46 +0200 Subject: [PATCH 01/15] devonfw#712: azure integration --- .github/labeler.yml | 100 ++++++------- .github/workflows/label-pr.yml | 30 ++-- documentation/LICENSE.asciidoc | 2 + documentation/azurecli.asciidoc | 47 ++++++ documentation/cli.asciidoc | 1 + documentation/devonfw-ide-usage.asciidoc | 2 + .../docker-desktop-alternative.asciidoc | 116 +++++++-------- documentation/scripts.asciidoc | 1 + scripts/src/main/resources/scripts/command/az | 136 ++++++++++++++++++ 9 files changed, 312 insertions(+), 123 deletions(-) create mode 100644 documentation/azurecli.asciidoc create mode 100644 scripts/src/main/resources/scripts/command/az diff --git a/.github/labeler.yml b/.github/labeler.yml index 91b92b25a..7fee482c8 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,50 +1,50 @@ -bash: - - '!*.*' - -cobigen: - - 'cobigen' - -commandlet: - - 'scripts/src/main/resources/scripts/command/**/*' - -config: - - any: ['settings/**/*', 'configurator/**/*'] - -documentation: - - 'documentation/**/*' - -eclipse: - - any: ['eclipse-m2e/**/*', 'eclipse'] - -intellij: - - 'intellij' - -java: - - 'java' - -javascript: - - any: ['node', 'npm', 'ng', 'yarn'] - -npm: - - 'npm' - -SCM: - - '.github/**/*' - -scripts: - - 'scripts/**/*' - -settings: - - 'settings/**/*' - -test: - - 'scripts/src/test/**/*' - -vscode: - - 'vscode' - -macOS: - - 'scripts/src/main/resources/system/mac/**/*' - -windows: - - 'scripts/src/main/resources/system/windows/**/*' +bash: + - '!*.*' + +cobigen: + - 'cobigen' + +commandlet: + - 'scripts/src/main/resources/scripts/command/**/*' + +config: + - any: ['settings/**/*', 'configurator/**/*'] + +documentation: + - 'documentation/**/*' + +eclipse: + - any: ['eclipse-m2e/**/*', 'eclipse'] + +intellij: + - 'intellij' + +java: + - 'java' + +javascript: + - any: ['node', 'npm', 'ng', 'yarn'] + +npm: + - 'npm' + +SCM: + - '.github/**/*' + +scripts: + - 'scripts/**/*' + +settings: + - 'settings/**/*' + +test: + - 'scripts/src/test/**/*' + +vscode: + - 'vscode' + +macOS: + - 'scripts/src/main/resources/system/mac/**/*' + +windows: + - 'scripts/src/main/resources/system/windows/**/*' diff --git a/.github/workflows/label-pr.yml b/.github/workflows/label-pr.yml index 500b3260c..245287ea6 100644 --- a/.github/workflows/label-pr.yml +++ b/.github/workflows/label-pr.yml @@ -1,16 +1,16 @@ -name: Label-PR -on: - pull_request_target: # *_target workaround for https://github.com/actions/labeler/issues/12 - types: [opened, reopened, synchronize, unlocked, unlabeled] - -jobs: - label: - runs-on: ubuntu-latest - - steps: - - name: Label by changed paths - uses: actions/labeler@v3 - with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" - sync-labels: false +name: Label-PR +on: + pull_request_target: # *_target workaround for https://github.com/actions/labeler/issues/12 + types: [opened, reopened, synchronize, unlocked, unlabeled] + +jobs: + label: + runs-on: ubuntu-latest + + steps: + - name: Label by changed paths + uses: actions/labeler@v3 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" + sync-labels: false configuration-path: .github/labeler.yml \ No newline at end of file diff --git a/documentation/LICENSE.asciidoc b/documentation/LICENSE.asciidoc index 39def6b7d..a1762dae4 100644 --- a/documentation/LICENSE.asciidoc +++ b/documentation/LICENSE.asciidoc @@ -60,6 +60,8 @@ The following table shows the components that may be used. The column `inclusion |https://helm.sh/[helm]|Optional|https://github.com/devonfw/ide/blob/master/LICENSE[ASL 2.0] |https://terraform.io/[terraform]|Optional|https://github.com/hashicorp/terraform/blob/main/LICENSE[Mozilla Public License 2.0] |https://www.graalvm.org/[GraalVM] |Optional|https://github.com/oracle/graal/blob/master/LICENSE[GPLv2] (with the “Classpath” Exception) +|https://github.com/Azure/azure-cli[AzureCLI] |Optional| https://github.com/Azure/azure-cli/blob/dev/LICENSE[MIT] + |======================= == Apache Software License - Version 2.0 diff --git a/documentation/azurecli.asciidoc b/documentation/azurecli.asciidoc new file mode 100644 index 000000000..ee0db9e76 --- /dev/null +++ b/documentation/azurecli.asciidoc @@ -0,0 +1,47 @@ +:toc: +toc::[] + += Azure CLI + +The Azure CLI commandlet allows to install and use https://github.com/Azure/azure-cli[Azure CLI]. + +*ATTENTION:* +Currently this feature is new and therefore experimental. +It may change in incompatible ways in the next releases until we reach a stable state. +We hope that all is working fine for you. +However, do not expect everything to work out of the box. +In case you are facing issues (e.g. network problems with Cisco AnyConnect, etc.) please give us feedback so we can improve. + +The arguments (`devon az «args»`) are explained by the following table: + +.Usage of `devon az` +[options="header"] +|======================= +|*Argument(s)* |*Meaning* +|`setup` |setup Azure CLI (install and verify) as per above flow. +|`«args»` |call Azure CLI with the specified arguments. Call `az help` for details or use `az` directly as preferred." (`«args»`) +|======================= + +== Setup +The `az` commandlet will install Azure CLI automatically. Windows user must confirm the User Access Control to run the installation as administrator. +Please note that besides the sandbox concept of devonfw-ide this is a global installation on your system. +When uninstalling Azure CLI, you may have to manually uninstall. + +**Uninstall process instructions:** + +- https://docs.microsoft.com/de-de/cli/azure/install-azure-cli-windows?tabs=azure-cli#uninstall[Windows] + +- https://docs.microsoft.com/de-de/cli/azure/install-azure-cli-linux?pivots=script#uninstall[MacOS and Linux] + +== Requirements +**MacOS and Linux users requires the following software:** + +- https://www.python.org/downloads/[Python 3.6.x, 3.7.x oder 3.8.x] +- https://sourceware.org/libffi/[libffi] +- https://www.openssl.org/source/[OpenSSL 1.0.2] + +== Usage +After the installation is complete, you may need to restart the console. Run `az help` from any shell of your OS directly to get started and use the online documentations and resources on the web to get familiar with Azure CLI. It is not our intention to repeat this here. + +Please note that the `az` commandlet is a link:cli.asciidoc#command-wrapper[command wrapper]. + diff --git a/documentation/cli.asciidoc b/documentation/cli.asciidoc index 19da92104..3e2a274f2 100644 --- a/documentation/cli.asciidoc +++ b/documentation/cli.asciidoc @@ -50,6 +50,7 @@ However, when you automate and want to avoid "command not found" errors, you can The following commandlets are currently available: +* link:azurecli.asciidoc[az] * link:build.asciidoc[build] * link:cobigen.asciidoc[cobigen] * link:docker.asciidoc[docker] diff --git a/documentation/devonfw-ide-usage.asciidoc b/documentation/devonfw-ide-usage.asciidoc index 756f2a39e..512726395 100644 --- a/documentation/devonfw-ide-usage.asciidoc +++ b/documentation/devonfw-ide-usage.asciidoc @@ -14,6 +14,8 @@ include::variables.asciidoc[leveloffset=2] include::cli.asciidoc[leveloffset=2] +include::azurecli.asciidoc[leveloffset=3] + include::build.asciidoc[leveloffset=3] include::docker.asciidoc[leveloffset=3] diff --git a/documentation/docker-desktop-alternative.asciidoc b/documentation/docker-desktop-alternative.asciidoc index b63b1ad14..96d52d57c 100644 --- a/documentation/docker-desktop-alternative.asciidoc +++ b/documentation/docker-desktop-alternative.asciidoc @@ -1,58 +1,58 @@ -:toc: -toc::[] - -= Introduction - -As https://www.docker.com/blog/updating-product-subscriptions/[Docker Desktop has changed its licensing] we have been looking for a license-free alternative. -This document gives a rationale why we have choosen https://rancherdesktop.io/[Rancher Desktop] as alternative to setup and manage https://www.docker.com/[docker] and https://kubernetes.io/[kubernetes]. - -= Why we chose Rancher Desktop as Docker-Desktop alternative - -Our main criteria for tool comparision were: - -* The softwares licence -* Match of toolset compared to Docker Desktop -* Complexity of installing and setting up the toolset -* Stability of the solution -* Future-proofness (community activitiy, regular updates and fixes) - -[cols="asciidoc",options="header",grid="cols"] -|====================== -| |*Rancher Desktop*|*Podman-Minikube*|*Others* -|*Pro* | -- It comes very close to what Docker-Desktop offers, as it installs most of Docker-Desktop's cli-tools -> Almost frictionless shift + -- Installs and sets up a good toolset including typical docker compnents as well as kubernetes + -- Makes installation and setup very easy + -- Cloud tools like Helm or Terraform are usable + -- Works on macOS, Windows and Linux + -- Comes with a GUI + -- Easy shift between Kubernetes versions via GUI + -- Works with VPN when using https://github.com/sakai135/wsl-vpnkit/[wsl-vpnkit] + -- Licence free -| -- Works deamon less, also OCI-Containers (like Docker) + -- Root less Containers, giving security improvements over Docker + -- Not that hard to install and setup + -- Kubernetes usable locally + -- Licence free -| -Interesting components: + -- e.g. Lazydocker gives a pretty and compact graphical component + -- e.g. MicroK8s as a lightweight, fast version of Kubernetes + -|*Contra*| --does not have all features Docker Desktop has, like image security scans -| -- Has most usual Docker-commands, but not all of them + -- For ongoing Docker-projects might not be worth it, because of some differences to Docker -> Porblems during software migration + -- GUI less + -- More work when it comes to implementation + -- minikube only gives us one cluster + -- Does not have all features Docker Desktop has, like image security scans + -| -- In some cases not available for all OS + -- Software often just one component of what we need (like Kind for running Clusters using Docker; Buildah for building Containers...), therefore need to mix tools + -- Especially for a manual mix of tools severe implementation/maintenance increase possible + -- More error-prone, particularly when using a rather uncommon mix of tools + -- Unclear future of some projects + -- Some options were bleeding edge -|====================== +:toc: +toc::[] + += Introduction + +As https://www.docker.com/blog/updating-product-subscriptions/[Docker Desktop has changed its licensing] we have been looking for a license-free alternative. +This document gives a rationale why we have choosen https://rancherdesktop.io/[Rancher Desktop] as alternative to setup and manage https://www.docker.com/[docker] and https://kubernetes.io/[kubernetes]. + += Why we chose Rancher Desktop as Docker-Desktop alternative + +Our main criteria for tool comparision were: + +* The softwares licence +* Match of toolset compared to Docker Desktop +* Complexity of installing and setting up the toolset +* Stability of the solution +* Future-proofness (community activitiy, regular updates and fixes) + +[cols="asciidoc",options="header",grid="cols"] +|====================== +| |*Rancher Desktop*|*Podman-Minikube*|*Others* +|*Pro* | +- It comes very close to what Docker-Desktop offers, as it installs most of Docker-Desktop's cli-tools -> Almost frictionless shift + +- Installs and sets up a good toolset including typical docker compnents as well as kubernetes + +- Makes installation and setup very easy + +- Cloud tools like Helm or Terraform are usable + +- Works on macOS, Windows and Linux + +- Comes with a GUI + +- Easy shift between Kubernetes versions via GUI + +- Works with VPN when using https://github.com/sakai135/wsl-vpnkit/[wsl-vpnkit] + +- Licence free +| +- Works deamon less, also OCI-Containers (like Docker) + +- Root less Containers, giving security improvements over Docker + +- Not that hard to install and setup + +- Kubernetes usable locally + +- Licence free +| +Interesting components: + +- e.g. Lazydocker gives a pretty and compact graphical component + +- e.g. MicroK8s as a lightweight, fast version of Kubernetes + +|*Contra*| +-does not have all features Docker Desktop has, like image security scans +| +- Has most usual Docker-commands, but not all of them + +- For ongoing Docker-projects might not be worth it, because of some differences to Docker -> Porblems during software migration + +- GUI less + +- More work when it comes to implementation + +- minikube only gives us one cluster + +- Does not have all features Docker Desktop has, like image security scans + +| +- In some cases not available for all OS + +- Software often just one component of what we need (like Kind for running Clusters using Docker; Buildah for building Containers...), therefore need to mix tools + +- Especially for a manual mix of tools severe implementation/maintenance increase possible + +- More error-prone, particularly when using a rather uncommon mix of tools + +- Unclear future of some projects + +- Some options were bleeding edge +|====================== diff --git a/documentation/scripts.asciidoc b/documentation/scripts.asciidoc index 5bbbe7a2e..39fa91d04 100644 --- a/documentation/scripts.asciidoc +++ b/documentation/scripts.asciidoc @@ -9,6 +9,7 @@ This directory is the heart of the `devonfw-ide` and contains the required link: ---- /scripts ├──/ https://github.com/devonfw/ide/tree/master/scripts/src/main/resources/scripts/command[command] +│ ├── link:azurecli.asciidoc[az] │ ├── link:build.asciidoc[build] │ ├── link:docker.asciidoc[docker] │ ├── link:eclipse.asciidoc[eclipse] diff --git a/scripts/src/main/resources/scripts/command/az b/scripts/src/main/resources/scripts/command/az new file mode 100644 index 000000000..dc554524a --- /dev/null +++ b/scripts/src/main/resources/scripts/command/az @@ -0,0 +1,136 @@ +#!/usr/bin/env bash + +# autocompletion list +if [ "${1}" = "shortlist" ] +then + if [ -z "${2}" ] + then + echo "setup help" + fi + exit +fi + +if [ -n "${DEVON_IDE_TRACE}" ]; then set -vx; fi +# shellcheck source=scripts/functions +source "$(dirname "${0}")"/../functions + +function doSetup() { + if doIsAzureInstalled + then + if [ "${1}" != "silent" ] && ! doIsQuiet + then + doEcho "Azure CLI is already installed at $(command -v az)" + fi + else + doRequireNotBatch + # Install Azure CLI contingent on OS + if doIsWindows + then + # Get leatest release + if [ -z "${AZURECLI_VERSION}" ] + then + doEcho "Getting latest release..." + AZURECLI_VERSION=$(curl -s https://api.github.com/repos/Azure/azure-cli/releases/latest | awk -F ":" '/tag_name/ {print $2}'| awk -F "\"" '{print $2}' | awk -F "-" '{print $3}') + fi + local version="${AZURECLI_VERSION}" + # Download installation files & modify the filepath for powershell syntax e.g. /c/... -> c:/... + doDownload "-" "" "az" "${version}" + # Install Azure CLI for Windows + doEcho "Installing Azure CLI for Windows" + modifyPathStructure + installOnWindows + # Install Aure CLI for MacOS + elif doIsMacOs + then + curl -L https://aka.ms/InstallAzureCli | bash + hash -r + else doFail "Sorry, Azure CLI installation support is not yet implemented for your OS. Please install manually or help devonfw-ide to support it for your OS by contributing a pull-request." + fi + fi +} + +#modify a filepath for powershell path syntax e.g. /c/... -> c:/... +function modifyPathStructure(){ + modifiedPath=${DEVON_DOWNLOAD_DIR} + partition=$(echo "${modifiedPath}" | cut -f2 -d'/') + partition=${partition}:'/' + modifiedPath=${partition}$(echo "${modifiedPath}" | cut -f3- -d'/') + modifiedPath=$(echo "${modifiedPath}" | tr '/' \\\\) +} + +#Install Azure CLI for Windows via Powershell Command +function installOnWindows(){ + while true; do echo -n .; sleep 1; done & trap 'kill $!' SIGTERM SIGKILL + powershell.exe -Command "Start-Process msiexec.exe -verb runas -Wait -ArgumentList '/I ${modifiedPath}\az-${version}-windows.msi /quiet'" &> /dev/null || exit_code=$? + if [[ -z "${exit_code}" ]] + then + kill $! + echo "done" + echo "" + read -r -p "Azure CLI has been installed and ready to use. Restart the console to use Azure Cli." + else + kill $! + echo "" + read -r -p "Admin rights are required to install Azure CLI. Would you like to start the setup again? (Y/n)" answer + case ${answer:0:1} in + y|Y ) + doEcho "\nInstalling Azure CLI for Windows" + exit_code="" + installOnWindows + ;; + * ) + doEcho "The installation has been canceled." + ;; + esac + fi + } + +# OS independet check if Azure CLI is installed +function doIsAzureInstalled() { + if command -v az &> /dev/null + then + return + else + return 255 + fi +} + +function doRun() { + doSetup silent + doEcho "Running: Azure CLI ${*}" + az "${@}" +} + +# CLI +case ${1} in +"help" | "-h") + echo "Install Azure CLI." + echo + echo "Arguments:" + echo " setup install Azure CLI on your machine (global installation)." + echo " <> call Azure CLI with the specified arguments. Call az --help for details or use Azure CLI directly as preferred." + echo +;; + +"setup" | "s") + doEcho "Installing Azure CLI..." + doSetup +;; + +"") +if ! doIsAzureInstalled +then + doEcho "Installing Azure CLI..." + doSetup +else doRun "${@}" +fi +;; + +*) +if doIsAzureInstalled +then + doRun "${@}" +else doEcho "Unknown argument " +fi +;; +esac From f8111f0935ff422f84e3f21a198dbfd884a8a664 Mon Sep 17 00:00:00 2001 From: alfeilex <101652401+alfeilex@users.noreply.github.com> Date: Thu, 12 May 2022 13:19:12 +0200 Subject: [PATCH 02/15] devonfw#712 azure integration --- scripts/src/main/resources/scripts/command/az | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/scripts/src/main/resources/scripts/command/az b/scripts/src/main/resources/scripts/command/az index dc554524a..0ceccec47 100644 --- a/scripts/src/main/resources/scripts/command/az +++ b/scripts/src/main/resources/scripts/command/az @@ -49,7 +49,7 @@ function doSetup() { fi } -#modify a filepath for powershell path syntax e.g. /c/... -> c:/... +# modify a filepath for powershell path syntax e.g. /c/... -> c:/... function modifyPathStructure(){ modifiedPath=${DEVON_DOWNLOAD_DIR} partition=$(echo "${modifiedPath}" | cut -f2 -d'/') @@ -58,19 +58,14 @@ function modifyPathStructure(){ modifiedPath=$(echo "${modifiedPath}" | tr '/' \\\\) } -#Install Azure CLI for Windows via Powershell Command -function installOnWindows(){ - while true; do echo -n .; sleep 1; done & trap 'kill $!' SIGTERM SIGKILL - powershell.exe -Command "Start-Process msiexec.exe -verb runas -Wait -ArgumentList '/I ${modifiedPath}\az-${version}-windows.msi /quiet'" &> /dev/null || exit_code=$? +# Install Azure CLI for Windows via Powershell Command +function installOnWindows(){ + powershell.exe -Command "Start-Process msiexec.exe -verb runas -Wait -ArgumentList '/I ${modifiedPath}\az-${version}-windows.msi /QB-!'" &> /dev/null || exit_code=$? if [[ -z "${exit_code}" ]] then - kill $! - echo "done" - echo "" - read -r -p "Azure CLI has been installed and ready to use. Restart the console to use Azure Cli." + setConfigDir + read -r -p "Azure CLI has been installed and is ready to use. Restart the console to use Azure CLI." answer doRunCommand "devon" else - kill $! - echo "" read -r -p "Admin rights are required to install Azure CLI. Would you like to start the setup again? (Y/n)" answer case ${answer:0:1} in y|Y ) @@ -85,6 +80,16 @@ function installOnWindows(){ fi } +# Set directory for azure cli configuration file +function setConfigDir() { + azurecli_export="export AZURE_CONFIG_DIR=${DEVON_IDE_HOME}/conf/.azure" + if ! grep -q "${azurecli_export}" "${DEVON_IDE_HOME}/conf/devon.properties" + then + echo -e "\n${azurecli_export}" >> "${DEVON_IDE_HOME}/conf/devon.properties" + fi + echo "AZURE_CONFIG_DIR is set to ${DEVON_IDE_HOME}/conf/.azure" +} + # OS independet check if Azure CLI is installed function doIsAzureInstalled() { if command -v az &> /dev/null From 552b1f5035dec51d3a3c310168a3183fb2dfb391 Mon Sep 17 00:00:00 2001 From: alfeilex <101652401+alfeilex@users.noreply.github.com> Date: Thu, 12 May 2022 17:43:39 +0200 Subject: [PATCH 03/15] devonfw#712 azurecli integration --- scripts/src/main/resources/scripts/command/az | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/scripts/src/main/resources/scripts/command/az b/scripts/src/main/resources/scripts/command/az index 0ceccec47..634cc5d5b 100644 --- a/scripts/src/main/resources/scripts/command/az +++ b/scripts/src/main/resources/scripts/command/az @@ -23,7 +23,6 @@ function doSetup() { fi else doRequireNotBatch - # Install Azure CLI contingent on OS if doIsWindows then # Get leatest release @@ -33,17 +32,11 @@ function doSetup() { AZURECLI_VERSION=$(curl -s https://api.github.com/repos/Azure/azure-cli/releases/latest | awk -F ":" '/tag_name/ {print $2}'| awk -F "\"" '{print $2}' | awk -F "-" '{print $3}') fi local version="${AZURECLI_VERSION}" - # Download installation files & modify the filepath for powershell syntax e.g. /c/... -> c:/... doDownload "-" "" "az" "${version}" # Install Azure CLI for Windows - doEcho "Installing Azure CLI for Windows" + doEcho "Installing Azure CLI for Windows..." modifyPathStructure installOnWindows - # Install Aure CLI for MacOS - elif doIsMacOs - then - curl -L https://aka.ms/InstallAzureCli | bash - hash -r else doFail "Sorry, Azure CLI installation support is not yet implemented for your OS. Please install manually or help devonfw-ide to support it for your OS by contributing a pull-request." fi fi @@ -52,10 +45,9 @@ function doSetup() { # modify a filepath for powershell path syntax e.g. /c/... -> c:/... function modifyPathStructure(){ modifiedPath=${DEVON_DOWNLOAD_DIR} - partition=$(echo "${modifiedPath}" | cut -f2 -d'/') - partition=${partition}:'/' + partition=$(echo "${modifiedPath}" | cut -f2 -d'/'):'/' # -> :/ modifiedPath=${partition}$(echo "${modifiedPath}" | cut -f3- -d'/') - modifiedPath=$(echo "${modifiedPath}" | tr '/' \\\\) + modifiedPath="${modifiedPath//'/'/'\'}" } # Install Azure CLI for Windows via Powershell Command @@ -64,12 +56,12 @@ function installOnWindows(){ if [[ -z "${exit_code}" ]] then setConfigDir - read -r -p "Azure CLI has been installed and is ready to use. Restart the console to use Azure CLI." answer doRunCommand "devon" + doEcho "Azure CLI has been installed and is ready to use. \n\n******** IMPORTANT ******** \nRestart the console to use Azure CLI." else - read -r -p "Admin rights are required to install Azure CLI. Would you like to start the setup again? (Y/n)" answer + read -r -p "You must run the installation with administration rights. Would you like to start the installation again? (Y/n)" answer case ${answer:0:1} in y|Y ) - doEcho "\nInstalling Azure CLI for Windows" + doEcho "\nInstalling Azure CLI for Windows..." exit_code="" installOnWindows ;; @@ -85,9 +77,10 @@ function setConfigDir() { azurecli_export="export AZURE_CONFIG_DIR=${DEVON_IDE_HOME}/conf/.azure" if ! grep -q "${azurecli_export}" "${DEVON_IDE_HOME}/conf/devon.properties" then + doRunCommand "export AZURE_CONFIG_DIR=${DEVON_IDE_HOME}/conf/.azure" echo -e "\n${azurecli_export}" >> "${DEVON_IDE_HOME}/conf/devon.properties" fi - echo "AZURE_CONFIG_DIR is set to ${DEVON_IDE_HOME}/conf/.azure" + } # OS independet check if Azure CLI is installed @@ -103,6 +96,7 @@ function doIsAzureInstalled() { function doRun() { doSetup silent doEcho "Running: Azure CLI ${*}" + setConfigDir az "${@}" } From 736bfb19aa30bfca2434463ae06015fbec330840 Mon Sep 17 00:00:00 2001 From: alfeilex <101652401+alfeilex@users.noreply.github.com> Date: Thu, 12 May 2022 17:53:49 +0200 Subject: [PATCH 04/15] devonfw#712 azure cli integration add configuration file in azurecli.asciidoc --- documentation/azurecli.asciidoc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/documentation/azurecli.asciidoc b/documentation/azurecli.asciidoc index ee0db9e76..bda0b662d 100644 --- a/documentation/azurecli.asciidoc +++ b/documentation/azurecli.asciidoc @@ -40,6 +40,9 @@ When uninstalling Azure CLI, you may have to manually uninstall. - https://sourceware.org/libffi/[libffi] - https://www.openssl.org/source/[OpenSSL 1.0.2] +== Configuration File +The configuration file is located at `conf/.azure`. Don't forget to set the environment variables of your IDE with `devon` before setting new configurations for Azure. + == Usage After the installation is complete, you may need to restart the console. Run `az help` from any shell of your OS directly to get started and use the online documentations and resources on the web to get familiar with Azure CLI. It is not our intention to repeat this here. From 7a654b0f63379fd37ecb7cc3702c53c6c2d4e698 Mon Sep 17 00:00:00 2001 From: alfeilex <101652401+alfeilex@users.noreply.github.com> Date: Thu, 12 May 2022 18:29:44 +0200 Subject: [PATCH 05/15] Update devonfw-ide-usage.asciidoc --- documentation/devonfw-ide-usage.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/devonfw-ide-usage.asciidoc b/documentation/devonfw-ide-usage.asciidoc index 512726395..4e8d0c525 100644 --- a/documentation/devonfw-ide-usage.asciidoc +++ b/documentation/devonfw-ide-usage.asciidoc @@ -14,7 +14,7 @@ include::variables.asciidoc[leveloffset=2] include::cli.asciidoc[leveloffset=2] -include::azurecli.asciidoc[leveloffset=3] +include::az.asciidoc[leveloffset=3] include::build.asciidoc[leveloffset=3] From 7491c976a1e10369464e8125eb245cc2e1a383cd Mon Sep 17 00:00:00 2001 From: alfeilex <101652401+alfeilex@users.noreply.github.com> Date: Thu, 12 May 2022 18:31:11 +0200 Subject: [PATCH 06/15] devonfw#712: azure integration --- documentation/{azurecli.asciidoc => az.asciidoc} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename documentation/{azurecli.asciidoc => az.asciidoc} (100%) diff --git a/documentation/azurecli.asciidoc b/documentation/az.asciidoc similarity index 100% rename from documentation/azurecli.asciidoc rename to documentation/az.asciidoc From 54411b1333449bac3d9218e46cf9f0770c441480 Mon Sep 17 00:00:00 2001 From: alfeilex <101652401+alfeilex@users.noreply.github.com> Date: Thu, 12 May 2022 18:31:34 +0200 Subject: [PATCH 07/15] devonfw#712: azure integration --- documentation/cli.asciidoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/cli.asciidoc b/documentation/cli.asciidoc index 3e2a274f2..d7a8bc5f4 100644 --- a/documentation/cli.asciidoc +++ b/documentation/cli.asciidoc @@ -50,7 +50,7 @@ However, when you automate and want to avoid "command not found" errors, you can The following commandlets are currently available: -* link:azurecli.asciidoc[az] +* link:az.asciidoc[az] * link:build.asciidoc[build] * link:cobigen.asciidoc[cobigen] * link:docker.asciidoc[docker] @@ -74,4 +74,4 @@ The following commandlets are currently available: * link:sonar.asciidoc[sonar] * link:terraform.asciidoc[terraform] * link:vscode.asciidoc[vscode] -* link:yarn.asciidoc[yarn] \ No newline at end of file +* link:yarn.asciidoc[yarn] From fd52a36eba2af59503e5f6aa58e650998a6b73f3 Mon Sep 17 00:00:00 2001 From: alfeilex <101652401+alfeilex@users.noreply.github.com> Date: Thu, 12 May 2022 18:33:05 +0200 Subject: [PATCH 08/15] devonfw#712: azure integration --- documentation/scripts.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/scripts.asciidoc b/documentation/scripts.asciidoc index 39fa91d04..343298659 100644 --- a/documentation/scripts.asciidoc +++ b/documentation/scripts.asciidoc @@ -9,7 +9,7 @@ This directory is the heart of the `devonfw-ide` and contains the required link: ---- /scripts ├──/ https://github.com/devonfw/ide/tree/master/scripts/src/main/resources/scripts/command[command] -│ ├── link:azurecli.asciidoc[az] +│ ├── link:az.asciidoc[az] │ ├── link:build.asciidoc[build] │ ├── link:docker.asciidoc[docker] │ ├── link:eclipse.asciidoc[eclipse] From bed5ac58522693f3d5bd9fe8e9a746af01a66a69 Mon Sep 17 00:00:00 2001 From: alfeilex <101652401+alfeilex@users.noreply.github.com> Date: Thu, 12 May 2022 19:29:59 +0200 Subject: [PATCH 09/15] devonfw#712: azure integration --- scripts/src/main/resources/scripts/command/az | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/src/main/resources/scripts/command/az b/scripts/src/main/resources/scripts/command/az index 634cc5d5b..8b25eb45f 100644 --- a/scripts/src/main/resources/scripts/command/az +++ b/scripts/src/main/resources/scripts/command/az @@ -56,7 +56,7 @@ function installOnWindows(){ if [[ -z "${exit_code}" ]] then setConfigDir - doEcho "Azure CLI has been installed and is ready to use. \n\n******** IMPORTANT ******** \nRestart the console to use Azure CLI." + doEcho "Azure CLI has been installed and is ready to use. \n\n******** IMPORTANT ******** \nRestart the console to use Azure CLI regular." else read -r -p "You must run the installation with administration rights. Would you like to start the installation again? (Y/n)" answer case ${answer:0:1} in @@ -79,6 +79,7 @@ function setConfigDir() { then doRunCommand "export AZURE_CONFIG_DIR=${DEVON_IDE_HOME}/conf/.azure" echo -e "\n${azurecli_export}" >> "${DEVON_IDE_HOME}/conf/devon.properties" + doEcho "Location of Azure's configuration file is set to ${DEVON_IDE_HOME}/conf/.azure" fi } From 79a456eaa793b7c39f33fcb8894a0182e714357a Mon Sep 17 00:00:00 2001 From: alfeilex <101652401+alfeilex@users.noreply.github.com> Date: Fri, 13 May 2022 14:07:52 +0200 Subject: [PATCH 10/15] devonfw#712 azure integration --- documentation/az.asciidoc | 10 +-- scripts/src/main/resources/scripts/command/az | 63 ++++++++++++------- 2 files changed, 42 insertions(+), 31 deletions(-) diff --git a/documentation/az.asciidoc b/documentation/az.asciidoc index bda0b662d..cc326219a 100644 --- a/documentation/az.asciidoc +++ b/documentation/az.asciidoc @@ -3,7 +3,7 @@ toc::[] = Azure CLI -The Azure CLI commandlet allows to install and use https://github.com/Azure/azure-cli[Azure CLI]. +The Azure CLI commandlet allows to install and use https://github.com/Azure/azure-cli[Azure CLI]. Currently, the command works only for Windows. *ATTENTION:* Currently this feature is new and therefore experimental. @@ -31,14 +31,10 @@ When uninstalling Azure CLI, you may have to manually uninstall. - https://docs.microsoft.com/de-de/cli/azure/install-azure-cli-windows?tabs=azure-cli#uninstall[Windows] -- https://docs.microsoft.com/de-de/cli/azure/install-azure-cli-linux?pivots=script#uninstall[MacOS and Linux] - == Requirements -**MacOS and Linux users requires the following software:** +**Windows users requires the following software:** -- https://www.python.org/downloads/[Python 3.6.x, 3.7.x oder 3.8.x] -- https://sourceware.org/libffi/[libffi] -- https://www.openssl.org/source/[OpenSSL 1.0.2] +- https://docs.microsoft.com/en-us/powershell//[Powershell] == Configuration File The configuration file is located at `conf/.azure`. Don't forget to set the environment variables of your IDE with `devon` before setting new configurations for Azure. diff --git a/scripts/src/main/resources/scripts/command/az b/scripts/src/main/resources/scripts/command/az index 8b25eb45f..43faaefc2 100644 --- a/scripts/src/main/resources/scripts/command/az +++ b/scripts/src/main/resources/scripts/command/az @@ -47,41 +47,46 @@ function modifyPathStructure(){ modifiedPath=${DEVON_DOWNLOAD_DIR} partition=$(echo "${modifiedPath}" | cut -f2 -d'/'):'/' # -> :/ modifiedPath=${partition}$(echo "${modifiedPath}" | cut -f3- -d'/') - modifiedPath="${modifiedPath//'/'/'\'}" + modifiedPath="${modifiedPath////\\}" } # Install Azure CLI for Windows via Powershell Command -function installOnWindows(){ - powershell.exe -Command "Start-Process msiexec.exe -verb runas -Wait -ArgumentList '/I ${modifiedPath}\az-${version}-windows.msi /QB-!'" &> /dev/null || exit_code=$? - if [[ -z "${exit_code}" ]] - then - setConfigDir - doEcho "Azure CLI has been installed and is ready to use. \n\n******** IMPORTANT ******** \nRestart the console to use Azure CLI regular." - else - read -r -p "You must run the installation with administration rights. Would you like to start the installation again? (Y/n)" answer - case ${answer:0:1} in - y|Y ) - doEcho "\nInstalling Azure CLI for Windows..." - exit_code="" - installOnWindows - ;; - * ) - doEcho "The installation has been canceled." - ;; - esac +function installOnWindows(){ + if doIsPwshInstalled + then + powershell.exe -Command "Start-Process msiexec.exe -verb runas -Wait -ArgumentList '/I ${modifiedPath}\az-${version}-windows.msi /QB-!'" &> /dev/null || exit_code=$? + if [[ -z "${exit_code}" ]] + then + setConfigDir + doEcho "Azure CLI has been installed and is ready to use. \n\n******** IMPORTANT ******** \nRestart the console to use Azure CLI regular." + else + read -r -p "You must run the installation with administration rights. Would you like to start the installation again? (Y/n)" answer + case ${answer:0:1} in + y|Y ) + doEcho "\nInstalling Azure CLI for Windows..." + exit_code="" + installOnWindows + ;; + * ) + doEcho "The installation has been canceled." + ;; + esac + fi + else doEcho "Powershell must be installed on your system to continue the installation." fi - } +} + # Set directory for azure cli configuration file function setConfigDir() { - azurecli_export="export AZURE_CONFIG_DIR=${DEVON_IDE_HOME}/conf/.azure" + azureconf_dir="${DEVON_IDE_HOME}/conf/.azure" + azurecli_export="export AZURE_CONFIG_DIR=${azureconf_dir}" if ! grep -q "${azurecli_export}" "${DEVON_IDE_HOME}/conf/devon.properties" then - doRunCommand "export AZURE_CONFIG_DIR=${DEVON_IDE_HOME}/conf/.azure" + doRunCommand "${azurecli_export}" echo -e "\n${azurecli_export}" >> "${DEVON_IDE_HOME}/conf/devon.properties" - doEcho "Location of Azure's configuration file is set to ${DEVON_IDE_HOME}/conf/.azure" + doEcho "Location of Azure's configuration file is set to ${azureconf_dir}" fi - } # OS independet check if Azure CLI is installed @@ -94,6 +99,16 @@ function doIsAzureInstalled() { fi } +# Check if Powershell is installed +function doIsPwshInstalled() { + if command -v powershell &> /dev/null + then + return + else + return 255 + fi +} + function doRun() { doSetup silent doEcho "Running: Azure CLI ${*}" From 3483ab9eed13a09e0a4dcd1ba2cc662a548565c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Hohwiller?= Date: Mon, 23 May 2022 12:37:29 +0200 Subject: [PATCH 11/15] Code style improvements --- scripts/src/main/resources/scripts/command/az | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/scripts/src/main/resources/scripts/command/az b/scripts/src/main/resources/scripts/command/az index 43faaefc2..ec70efafb 100644 --- a/scripts/src/main/resources/scripts/command/az +++ b/scripts/src/main/resources/scripts/command/az @@ -37,13 +37,14 @@ function doSetup() { doEcho "Installing Azure CLI for Windows..." modifyPathStructure installOnWindows - else doFail "Sorry, Azure CLI installation support is not yet implemented for your OS. Please install manually or help devonfw-ide to support it for your OS by contributing a pull-request." + else + doFail "Sorry, Azure CLI installation support is not yet implemented for your OS. Please install manually or help devonfw-ide to support it for your OS by contributing a pull-request." fi fi } # modify a filepath for powershell path syntax e.g. /c/... -> c:/... -function modifyPathStructure(){ +function modifyPathStructure() { modifiedPath=${DEVON_DOWNLOAD_DIR} partition=$(echo "${modifiedPath}" | cut -f2 -d'/'):'/' # -> :/ modifiedPath=${partition}$(echo "${modifiedPath}" | cut -f3- -d'/') @@ -51,11 +52,11 @@ function modifyPathStructure(){ } # Install Azure CLI for Windows via Powershell Command -function installOnWindows(){ +function installOnWindows() { if doIsPwshInstalled then powershell.exe -Command "Start-Process msiexec.exe -verb runas -Wait -ArgumentList '/I ${modifiedPath}\az-${version}-windows.msi /QB-!'" &> /dev/null || exit_code=$? - if [[ -z "${exit_code}" ]] + if [ -z "${exit_code}" ] then setConfigDir doEcho "Azure CLI has been installed and is ready to use. \n\n******** IMPORTANT ******** \nRestart the console to use Azure CLI regular." From ef7a475ce6c232ad7632553aebd2e68e413e4f78 Mon Sep 17 00:00:00 2001 From: alfeilex <101652401+alfeilex@users.noreply.github.com> Date: Wed, 25 May 2022 18:45:23 +0200 Subject: [PATCH 12/15] devonfw#712 azure integration --- documentation/az.asciidoc | 1 - scripts/src/main/resources/scripts/command/az | 86 ++++--------------- 2 files changed, 19 insertions(+), 68 deletions(-) diff --git a/documentation/az.asciidoc b/documentation/az.asciidoc index cc326219a..faaaec6ff 100644 --- a/documentation/az.asciidoc +++ b/documentation/az.asciidoc @@ -10,7 +10,6 @@ Currently this feature is new and therefore experimental. It may change in incompatible ways in the next releases until we reach a stable state. We hope that all is working fine for you. However, do not expect everything to work out of the box. -In case you are facing issues (e.g. network problems with Cisco AnyConnect, etc.) please give us feedback so we can improve. The arguments (`devon az «args»`) are explained by the following table: diff --git a/scripts/src/main/resources/scripts/command/az b/scripts/src/main/resources/scripts/command/az index ec70efafb..52140654a 100644 --- a/scripts/src/main/resources/scripts/command/az +++ b/scripts/src/main/resources/scripts/command/az @@ -15,7 +15,7 @@ if [ -n "${DEVON_IDE_TRACE}" ]; then set -vx; fi source "$(dirname "${0}")"/../functions function doSetup() { - if doIsAzureInstalled + if command -v az &> /dev/null then if [ "${1}" != "silent" ] && ! doIsQuiet then @@ -35,7 +35,6 @@ function doSetup() { doDownload "-" "" "az" "${version}" # Install Azure CLI for Windows doEcho "Installing Azure CLI for Windows..." - modifyPathStructure installOnWindows else doFail "Sorry, Azure CLI installation support is not yet implemented for your OS. Please install manually or help devonfw-ide to support it for your OS by contributing a pull-request." @@ -43,41 +42,25 @@ function doSetup() { fi } -# modify a filepath for powershell path syntax e.g. /c/... -> c:/... -function modifyPathStructure() { - modifiedPath=${DEVON_DOWNLOAD_DIR} - partition=$(echo "${modifiedPath}" | cut -f2 -d'/'):'/' # -> :/ - modifiedPath=${partition}$(echo "${modifiedPath}" | cut -f3- -d'/') - modifiedPath="${modifiedPath////\\}" -} - # Install Azure CLI for Windows via Powershell Command function installOnWindows() { - if doIsPwshInstalled - then - powershell.exe -Command "Start-Process msiexec.exe -verb runas -Wait -ArgumentList '/I ${modifiedPath}\az-${version}-windows.msi /QB-!'" &> /dev/null || exit_code=$? - if [ -z "${exit_code}" ] - then - setConfigDir - doEcho "Azure CLI has been installed and is ready to use. \n\n******** IMPORTANT ******** \nRestart the console to use Azure CLI regular." + winPath=$(cygpath -w "${DEVON_DOWNLOAD_DIR}") + powershell.exe -Command "Start-Process msiexec.exe -verb runas -Wait -ArgumentList '/I ${winPath}\az-${version}-windows.msi /QB-!'" &> /dev/null + if [ "${?}" = 0 ] + then + setConfigDir + doEcho "Azure CLI has been installed and is ready to use. \n\n******** IMPORTANT ******** \nRestart the console to use Azure CLI regular." + else + if doAskToContinue "\nAdministration rights are required. Do you want to restart the installation?" + then + doEcho "\nInstalling Azure CLI for Windows..." + installOnWindows else - read -r -p "You must run the installation with administration rights. Would you like to start the installation again? (Y/n)" answer - case ${answer:0:1} in - y|Y ) - doEcho "\nInstalling Azure CLI for Windows..." - exit_code="" - installOnWindows - ;; - * ) - doEcho "The installation has been canceled." - ;; - esac + doEcho "The installation has been canceled." fi - else doEcho "Powershell must be installed on your system to continue the installation." fi } - # Set directory for azure cli configuration file function setConfigDir() { azureconf_dir="${DEVON_IDE_HOME}/conf/.azure" @@ -90,33 +73,16 @@ function setConfigDir() { fi } -# OS independet check if Azure CLI is installed -function doIsAzureInstalled() { +function doRun() { + doSetup silent if command -v az &> /dev/null - then - return - else - return 255 - fi -} - -# Check if Powershell is installed -function doIsPwshInstalled() { - if command -v powershell &> /dev/null then - return - else - return 255 + doEcho "Running: Azure CLI ${*}" + setConfigDir + az "${@}" fi } -function doRun() { - doSetup silent - doEcho "Running: Azure CLI ${*}" - setConfigDir - az "${@}" -} - # CLI case ${1} in "help" | "-h") @@ -129,24 +95,10 @@ case ${1} in ;; "setup" | "s") - doEcho "Installing Azure CLI..." - doSetup -;; - -"") -if ! doIsAzureInstalled -then - doEcho "Installing Azure CLI..." - doSetup -else doRun "${@}" -fi + doSetup "${2}" ;; *) -if doIsAzureInstalled -then doRun "${@}" -else doEcho "Unknown argument " -fi ;; esac From dc2a5e0be7cd7f34ff1724d94a0bb3652c7d66f5 Mon Sep 17 00:00:00 2001 From: alfeilex <101652401+alfeilex@users.noreply.github.com> Date: Tue, 31 May 2022 13:17:11 +0200 Subject: [PATCH 13/15] add changes --- scripts/src/main/resources/scripts/command/az | 43 ++++++++++--------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/scripts/src/main/resources/scripts/command/az b/scripts/src/main/resources/scripts/command/az index 52140654a..7f58e5770 100644 --- a/scripts/src/main/resources/scripts/command/az +++ b/scripts/src/main/resources/scripts/command/az @@ -26,39 +26,38 @@ function doSetup() { if doIsWindows then # Get leatest release - if [ -z "${AZURECLI_VERSION}" ] + if [ -z "${AZ_VERSION}" ] then doEcho "Getting latest release..." - AZURECLI_VERSION=$(curl -s https://api.github.com/repos/Azure/azure-cli/releases/latest | awk -F ":" '/tag_name/ {print $2}'| awk -F "\"" '{print $2}' | awk -F "-" '{print $3}') + AZ_VERSION=$(curl -s https://api.github.com/repos/Azure/azure-cli/releases/latest | awk -F ":" '/tag_name/ {print $2}'| awk -F "\"" '{print $2}' | awk -F "-" '{print $3}') + fi + + doInstall "-" "${AZ_HOME}" "az" "${AZ_VERSION}" + if [ "${?}" = 0 ] + then + doPackageInstall "${AZ_HOME}" fi - local version="${AZURECLI_VERSION}" - doDownload "-" "" "az" "${version}" - # Install Azure CLI for Windows - doEcho "Installing Azure CLI for Windows..." - installOnWindows - else - doFail "Sorry, Azure CLI installation support is not yet implemented for your OS. Please install manually or help devonfw-ide to support it for your OS by contributing a pull-request." fi fi } -# Install Azure CLI for Windows via Powershell Command -function installOnWindows() { - winPath=$(cygpath -w "${DEVON_DOWNLOAD_DIR}") - powershell.exe -Command "Start-Process msiexec.exe -verb runas -Wait -ArgumentList '/I ${winPath}\az-${version}-windows.msi /QB-!'" &> /dev/null - if [ "${?}" = 0 ] +function doPackageInstall() { + local path_to_package="${1}" + if doIsWindows then - setConfigDir - doEcho "Azure CLI has been installed and is ready to use. \n\n******** IMPORTANT ******** \nRestart the console to use Azure CLI regular." - else - if doAskToContinue "\nAdministration rights are required. Do you want to restart the installation?" + local winPath=$(cygpath -w "${path_to_package}") + powershell.exe -Command "Start-Process msiexec.exe -verb runas -Wait -ArgumentList '/I ${winPath}\az-${AZ_VERSION}-windows.msi /QB-!'" &> /dev/null + if [ "${?}" = 0 ] then - doEcho "\nInstalling Azure CLI for Windows..." - installOnWindows + setConfigDir + doEcho "\nAzure CLI ist installed now. Great! \nTo get started you may need to restart your current shell." else - doEcho "The installation has been canceled." + doEcho "\nThe setup was canceled. Rerun the setup to install Azure CLI." fi + else + doFail "Sorry, Azure CLI installation support is not yet implemented for your OS. Please install manually or help devonfw-ide to support it for your OS by contributing a pull-request." fi + doRunCommand "rm -rf ${path_to_package}" } # Set directory for azure cli configuration file @@ -83,6 +82,8 @@ function doRun() { fi } +AZ_HOME="${DEVON_IDE_HOME}/updates/install/az" + # CLI case ${1} in "help" | "-h") From 0ae95ce55af0f6fb872d083b297a4ef7b1789eb2 Mon Sep 17 00:00:00 2001 From: alfeilex <101652401+alfeilex@users.noreply.github.com> Date: Tue, 31 May 2022 13:24:38 +0200 Subject: [PATCH 14/15] add changes --- scripts/src/main/resources/scripts/command/az | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/src/main/resources/scripts/command/az b/scripts/src/main/resources/scripts/command/az index 7f58e5770..6b432137b 100644 --- a/scripts/src/main/resources/scripts/command/az +++ b/scripts/src/main/resources/scripts/command/az @@ -45,7 +45,8 @@ function doPackageInstall() { local path_to_package="${1}" if doIsWindows then - local winPath=$(cygpath -w "${path_to_package}") + local winPath + winPath=$(cygpath -w "${path_to_package}") powershell.exe -Command "Start-Process msiexec.exe -verb runas -Wait -ArgumentList '/I ${winPath}\az-${AZ_VERSION}-windows.msi /QB-!'" &> /dev/null if [ "${?}" = 0 ] then From c303c797fba7ab2bebb280f20003f4f8a9633c92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Hohwiller?= Date: Tue, 31 May 2022 17:38:49 +0200 Subject: [PATCH 15/15] message improvement on error --- scripts/src/main/resources/scripts/command/az | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/src/main/resources/scripts/command/az b/scripts/src/main/resources/scripts/command/az index 6b432137b..b3e556d6a 100644 --- a/scripts/src/main/resources/scripts/command/az +++ b/scripts/src/main/resources/scripts/command/az @@ -53,7 +53,7 @@ function doPackageInstall() { setConfigDir doEcho "\nAzure CLI ist installed now. Great! \nTo get started you may need to restart your current shell." else - doEcho "\nThe setup was canceled. Rerun the setup to install Azure CLI." + doEcho "\nThe setup was canceled or failed. Rerun the setup to install Azure CLI." fi else doFail "Sorry, Azure CLI installation support is not yet implemented for your OS. Please install manually or help devonfw-ide to support it for your OS by contributing a pull-request."