You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openserverless.apache.org by ms...@apache.org on 2026/07/12 17:18:33 UTC
(openserverless-cli) 02/02: fixes to instellers
This is an automated email from the ASF dual-hosted git repository.
sciabarracom pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/openserverless-cli.git
commit 01066ae83ae1c0aed54524bc8b3d394af44420ce
Author: Trustable User <no...@example.com>
AuthorDate: Sun Jul 12 19:18:18 2026 +0200
fixes to instellers
---
install-latest | 50 ++++++++++++++++++++++++-----------
install-latest.sh | 27 -------------------
install.ps1 | 78 ++++++++++++++++++++-----------------------------------
install.sh | 42 +++++++++++++++++++++---------
4 files changed, 93 insertions(+), 104 deletions(-)
diff --git a/install-latest b/install-latest
index d6f1bbf..727f759 100644
--- a/install-latest
+++ b/install-latest
@@ -65,18 +65,27 @@ OPSROOT="https://raw.githubusercontent.com/apache/openserverless-task/0.9.1/opsr
if test -z "$VERSION"
then VERSION="$(curl -sL $OPSROOT | sed -n 's/^.*"version": "\([^"]*\)",/\1/p')"
fi
+if test -z "$VERSION"
+then echo "cannot determine version from $OPSROOT - exiting"
+ exit 1
+fi
FILE="openserverless-cli_${VERSION}$SUFFIX$EXT"
URL="https://github.com/apache/openserverless-cli/releases/download/v$VERSION/$FILE"
mkdir -p ~/.local/bin
-curl -sL "$URL" -o "/tmp/$FILE"
+if ! curl -fsSL "$URL" -o "/tmp/$FILE"
+then echo "cannot download ops from:"
+ echo "$URL"
+ exit 1
+fi
-if test "$EXT" == ".zip"
+if test "$EXT" = ".zip"
then
unzip -o -d ~/.local/bin "/tmp/$FILE" "$CMD"
else
tar xzvf "/tmp/$FILE" -C ~/.local/bin "$CMD"
fi
+rm -f "/tmp/$FILE"
if ! test -e ~/.local/bin/"$CMD"
then echo "cannot install ops - download and unpack it in a folder in the path from here:"
@@ -84,15 +93,24 @@ then echo "cannot install ops - download and unpack it in a folder in the path f
exit 1
fi
-if ! which ops | grep $HOME/.local/bin
-then
- echo "$HOME/.local/bin is not in the path - adding it"
- echo 'export PATH="$HOME/.local/bin:$PATH"' >>$HOME/.bashrc
- echo 'export PATH="$HOME/.local/bin:$PATH"' >>$HOME/.zshrc
- echo please restart your terminal to find ops in your path
-fi
+case ":$PATH:" in
+(*":$HOME/.local/bin:"*)
+ : # already in PATH
+;;
+(*)
+ echo "$HOME/.local/bin is not in the path - adding it"
+ LINE='export PATH="$HOME/.local/bin:$PATH"'
+ for RC in "$HOME/.bashrc" "$HOME/.zshrc"
+ do
+ if ! test -e "$RC" || ! grep -qF "$LINE" "$RC"
+ then echo "$LINE" >>"$RC"
+ fi
+ done
+ echo please restart your terminal to find ops in your path
+;;
+esac
-exit $?
+exit 0
# Above this line is Bash Script -------------------------------------------
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -123,21 +141,23 @@ if (-not (Test-Path -Path $BinPath)) {
New-Item -ItemType Directory -Force -Path $BinPath | Out-Null
}
-# Download the file
-Invoke-WebRequest -Uri $URL -OutFile "$FILE"
+# Download the file to a temp location
+$TmpFile = Join-Path ([System.IO.Path]::GetTempPath()) $FILE
+Invoke-WebRequest -Uri $URL -OutFile "$TmpFile"
# Unpack the file based on its extension
-Expand-Archive -Path "$FILE" -DestinationPath $BinPath -Force
+Expand-Archive -Path "$TmpFile" -DestinationPath $BinPath -Force
+Remove-Item -Path "$TmpFile" -Force -ErrorAction SilentlyContinue
# Verify installation
-if (-not (Test-Path "$BinPath/$CMD*")) {
+if (-not (Test-Path "$BinPath/$CMD")) {
Write-Host "Cannot install ops - download and unpack it in a folder in the path from here:"
Write-Host $URL
exit 1
}
# Check if the bin path is in the user's PATH
-if (-not ($env:PATH -contains $BinPath)) {
+if (-not ($env:PATH -split ';' -contains $BinPath)) {
$existingPath = [System.Environment]::GetEnvironmentVariable("Path", [System.EnvironmentVariableTarget]::User)
$newPath = "$BinPath;$existingPath"
[System.Environment]::SetEnvironmentVariable("Path", $newPath, [System.EnvironmentVariableTarget]::User)
diff --git a/install-latest.sh b/install-latest.sh
deleted file mode 100644
index 8a69c68..0000000
--- a/install-latest.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-
-if jq --version >/dev/null
-then
- LATEST=https://api.github.com/repos/apache/openserverless-cli/releases/latest
- VERSION=$(curl -s "$LATEST" | jq -r '.name | .[1:]')
- curl -sL bit.ly/get-ops | VERSION=$VERSION bash
-else
- echo "Sorry for the annoyance, but I need jq installed to run..."
-fi
\ No newline at end of file
diff --git a/install.ps1 b/install.ps1
index 2f0f2fb..d3865b8 100644
--- a/install.ps1
+++ b/install.ps1
@@ -17,78 +17,56 @@
$InWindows = [System.Environment]::OSVersion.Platform -eq 'Win32NT'
+if (-not $InWindows) {
+ Write-Host "This script is only for Windows - exiting"
+ exit 1
+}
+
$SUFFIX = "_windows_amd64"
$EXT = ".zip"
$CMD = "ops.exe"
-if (-not $InWindows) {
- $OS = (uname -s)
- $ARCH = (uname -m)
- $CMD = "ops"
- switch ("$OS-$ARCH") {
- "Linux-x86_64" {
- $SUFFIX = "_linux_amd64"
- $EXT = ".tar.gz"
- }
- "Linux-arm64" {
- $SUFFIX = "_linux_arm64"
- $EXT = ".tar.gz"
- }
- "Darwin-x86_64" {
- $SUFFIX = "_darwin_amd64"
- $EXT = ".tar.gz"
- }
- "Darwin-arm64" {
- $SUFFIX = "_darwin_arm64"
- $EXT = ".tar.gz"
- }
- default {
- Write-Host "Unknown system - exiting"
- exit 1
- }
- }
-}
-
$OPSROOT = "https://raw.githubusercontent.com/apache/openserverless-task/0.1.0/opsroot.json"
$VERSION = (Invoke-RestMethod -Uri $OPSROOT).version
+if (-not $VERSION) {
+ Write-Host "Cannot determine version from $OPSROOT - exiting"
+ exit 1
+}
$FILE = "openserverless-cli_${VERSION}$SUFFIX$EXT"
$URL = "https://github.com/apache/openserverless-cli/releases/download/v$VERSION/$FILE"
# Create the directory if it doesn't exist
-$BinPath = "$HOME/.local/bin"
+$BinPath = "$HOME\.local\bin"
if (-not (Test-Path -Path $BinPath)) {
New-Item -ItemType Directory -Force -Path $BinPath | Out-Null
}
-# Download the file
-Invoke-WebRequest -Uri $URL -OutFile "$FILE"
-
-# Unpack the file based on its extension
-if ($EXT -eq ".zip") {
- Expand-Archive -Path "$FILE" -DestinationPath $BinPath -Force
-} else {
- tar -xzvf "$FILE" -C $BinPath $CMD
+# Download the file to a temp location
+$TmpFile = Join-Path ([System.IO.Path]::GetTempPath()) $FILE
+try {
+ Invoke-WebRequest -Uri $URL -OutFile "$TmpFile"
+} catch {
+ Write-Host "Cannot download ops from:"
+ Write-Host $URL
+ exit 1
}
+# Unpack the file
+Expand-Archive -Path "$TmpFile" -DestinationPath $BinPath -Force
+Remove-Item -Path "$TmpFile" -Force -ErrorAction SilentlyContinue
+
# Verify installation
-if (-not (Test-Path "$BinPath/$CMD*")) {
+if (-not (Test-Path "$BinPath\$CMD")) {
Write-Host "Cannot install ops - download and unpack it in a folder in the path from here:"
Write-Host $URL
exit 1
}
# Check if the bin path is in the user's PATH
-if (-not ($env:PATH -contains $BinPath)) {
- if($InWindows) {
- $existingPath = [System.Environment]::GetEnvironmentVariable("Path", [System.EnvironmentVariableTarget]::User)
- $newPath = "$BinPath;$existingPath"
- [System.Environment]::SetEnvironmentVariable("Path", $newPath, [System.EnvironmentVariableTarget]::User)
- Write-Host "Please restart your terminal to find ops in your path"
- } else {
- Write-Host "$BinPath is not in the PATH - adding it"
- Add-Content -Path "$HOME\.bashrc" -Value "`nexport PATH=`"$BinPath`:`$PATH`""
- Add-Content -Path "$HOME\.zshrc" -Value "`nexport PATH=`"$BinPath`:`$PATH`""
- Write-Host "Please restart your terminal to find ops in your path"
- }
+if (-not (($env:PATH -split ';') -contains $BinPath)) {
+ $existingPath = [System.Environment]::GetEnvironmentVariable("Path", [System.EnvironmentVariableTarget]::User)
+ $newPath = "$BinPath;$existingPath"
+ [System.Environment]::SetEnvironmentVariable("Path", $newPath, [System.EnvironmentVariableTarget]::User)
+ Write-Host "Please restart your terminal to find ops in your path"
}
diff --git a/install.sh b/install.sh
index d750555..c26d53c 100644
--- a/install.sh
+++ b/install.sh
@@ -57,32 +57,50 @@ OPSROOT="https://raw.githubusercontent.com/apache/openserverless-task/0.1.0/opsr
if test -z "$VERSION"
then VERSION="$(curl -sL $OPSROOT | sed -n 's/^.*"version": "\([^"]*\)",/\1/p')"
fi
+if test -z "$VERSION"
+then echo "cannot determine version from $OPSROOT - exiting"
+ exit 1
+fi
FILE="openserverless-cli_${VERSION}$SUFFIX$EXT"
URL="https://github.com/apache/openserverless-cli/releases/download/v$VERSION/$FILE"
mkdir -p ~/.local/bin
-curl -sL "$URL" -o "/tmp/$FILE"
+if ! curl -fsSL "$URL" -o "/tmp/$FILE"
+then echo "cannot download ops from:"
+ echo "$URL"
+ exit 1
+fi
-if test "$EXT" == ".zip"
-then
+if test "$EXT" = ".zip"
+then
unzip -o -d ~/.local/bin "/tmp/$FILE" "$CMD"
-else
+else
tar xzvf "/tmp/$FILE" -C ~/.local/bin "$CMD"
fi
+rm -f "/tmp/$FILE"
-if ! test -e ~/.local/bin/ops*
+if ! test -e ~/.local/bin/"$CMD"
then echo "cannot install ops - download and unpack it in a folder in the path from here:"
echo "$URL"
exit 1
fi
-if ! which ops | grep $HOME/.local/bin
-then
- echo "$HOME/.local/bin is not in the path - adding it"
- echo 'export PATH="$HOME/.local/bin:$PATH"' >>$HOME/.bashrc
- echo 'export PATH="$HOME/.local/bin:$PATH"' >>$HOME/.zshrc
- echo please restart your terminal to find ops in your path
-fi
+case ":$PATH:" in
+*":$HOME/.local/bin:"*)
+ : # already in PATH
+;;
+*)
+ echo "$HOME/.local/bin is not in the path - adding it"
+ LINE='export PATH="$HOME/.local/bin:$PATH"'
+ for RC in "$HOME/.bashrc" "$HOME/.zshrc"
+ do
+ if ! test -e "$RC" || ! grep -qF "$LINE" "$RC"
+ then echo "$LINE" >>"$RC"
+ fi
+ done
+ echo please restart your terminal to find ops in your path
+;;
+esac
exit 0