collab: Add automatic install of minio deb or rpm to script/bootstrap (#32968)

Michael Sloan created

Release Notes:

- N/A

Change summary

script/bootstrap       | 27 +++++++++++++++++++++++++++
script/run-local-minio |  6 +++++-
2 files changed, 32 insertions(+), 1 deletion(-)

Detailed changes

script/bootstrap 🔗

@@ -2,6 +2,12 @@
 
 set -e
 
+# if root or if sudo/unavailable, define an empty variable
+if [ "$(id -u)" -eq 0 ]
+then maysudo=''
+else maysudo="$(command -v sudo || command -v doas || true)"
+fi
+
 if [[ "$OSTYPE" == "linux-gnu"* ]]; then
   echo "Linux dependencies..."
   script/linux
@@ -10,6 +16,27 @@ else
   which foreman > /dev/null || brew install foreman
 fi
 
+# Install minio if needed
+if ! which minio > /dev/null; then
+    if command -v brew > /dev/null; then
+        echo "minio not found. Installing via brew"
+        brew install minio/stable/minio
+    elif command -v apt > /dev/null; then
+        echo "minio not found. Installing via apt from https://dl.min.io/server/minio/release/linux-amd64/minio.deb"
+        wget -q https://dl.min.io/server/minio/release/linux-amd64/minio.deb -O /tmp/minio.deb
+        $maysudo apt install /tmp/minio.deb
+        rm -f /tmp/minio.deb
+    elif command -v dnf > /dev/null; then
+        echo "minio not found. Installing via dnf from https://dl.min.io/server/minio/release/linux-amd64/minio.rpm"
+        wget -q https://dl.min.io/server/minio/release/linux-amd64/minio.rpm -O /tmp/minio.rpm
+        $maysudo dnf install /tmp/minio.rpm
+        rm -f /tmp/minio.rpm
+    else
+        echo "No supported package manager found (brew, apt, or dnf)"
+        exit 1
+    fi
+fi
+
 # Install sqlx-cli if needed
 if ! [[ "$(command -v sqlx)" && "$(sqlx --version)" == "sqlx-cli 0.7.2" ]]; then
     echo "sqlx-cli not found or not the required version, installing version 0.7.2..."

script/run-local-minio 🔗

@@ -2,7 +2,11 @@
 
 set -e
 
-which minio > /dev/null || (echo "installing minio..."; brew install minio/stable/minio)
+if ! which minio > /dev/null; then
+    echo "minio not found - run script/bootstrap to install it and do other setup"
+    exit 1
+fi
+
 mkdir -p .blob_store/the-extensions-bucket
 mkdir -p .blob_store/zed-crash-reports