Ethereal-O commented on code in PR #339:
URL: 
https://github.com/apache/incubator-hugegraph-computer/pull/339#discussion_r2508194874


##########
vermeer/scripts/download_binaries.sh:
##########
@@ -0,0 +1,190 @@
+#!/bin/bash
+#
+# 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.
+#
+
+set -e
+
+SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
+PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
+TOOLS_DIR="$PROJECT_ROOT/tools"
+
+# Versions
+SUPERVISORD_VERSION="4.2.5"
+PROTOC_VERSION="21.12"
+
+# Colors for output
+RED='\033[0;31m'
+GREEN='\033[0;32m'
+YELLOW='\033[1;33m'
+NC='\033[0m' # No Color
+
+log_info() {
+    echo -e "${GREEN}[INFO]${NC} $1"
+}
+
+log_warn() {
+    echo -e "${YELLOW}[WARN]${NC} $1"
+}
+
+log_error() {
+    echo -e "${RED}[ERROR]${NC} $1"
+}
+
+# Download and verify file with MD5 checksum
+download_and_verify() {
+    local url=$1
+    local filepath=$2
+    local expected_md5=$3
+    local md5_cmd
+
+    # Detect md5 command (md5sum on Linux, md5 on macOS)
+    if command -v md5sum &> /dev/null; then
+        md5_cmd="md5sum"
+    elif command -v md5 &> /dev/null; then
+        md5_cmd="md5 -r"
+    else
+        log_warn "MD5 verification tool not found, skipping checksum 
verification"
+        expected_md5=""
+    fi
+
+    if [[ -f $filepath ]]; then
+        if [[ -n $expected_md5 ]]; then
+            log_info "File $filepath exists. Verifying MD5 checksum..."
+            actual_md5=$($md5_cmd "$filepath" | awk '{ print $1 }')
+            if [[ $actual_md5 != $expected_md5 ]]; then
+                log_warn "MD5 checksum mismatch for $filepath. Expected: 
$expected_md5, got: $actual_md5"
+                log_info "Deleting and re-downloading $filepath..."
+                rm -f "$filepath"
+            else
+                log_info "MD5 checksum verified for $filepath"
+                return 0
+            fi
+        else
+            log_info "File $filepath already exists, skipping download"
+            return 0
+        fi
+    fi
+
+    log_info "Downloading $filepath..."
+    if ! curl -L -f "$url" -o "$filepath"; then
+        log_error "Failed to download from $url"
+        return 1
+    fi
+
+    if [[ -n $expected_md5 ]]; then
+        actual_md5=$($md5_cmd "$filepath" | awk '{ print $1 }')
+        if [[ $actual_md5 != $expected_md5 ]]; then
+            log_error "MD5 checksum verification failed after download. 
Expected: $expected_md5, got: $actual_md5"
+            rm -f "$filepath"
+            return 1
+        fi
+        log_info "MD5 checksum verified successfully"
+    fi
+
+    return 0
+}
+
+# Download supervisord
+download_supervisord() {
+    local platform=$1
+    local arch=$2
+    local md5=$3
+    
+    SUPERVISORD_DIR="$TOOLS_DIR/supervisord/${platform}"
+    mkdir -p "$SUPERVISORD_DIR"
+    
+    local 
download_url="https://github.com/ochinchina/supervisord/releases/download/v${SUPERVISORD_VERSION}/supervisord_${SUPERVISORD_VERSION}_Linux_${arch}.tar.gz";
+    local temp_file="/tmp/supervisord_${platform}.tar.gz"
+    
+    log_info "Downloading supervisord for ${platform}..."
+    
+    if ! download_and_verify "$download_url" "$temp_file" "$md5"; then
+        return 1
+    fi
+    
+    if [ ! -f "$SUPERVISORD_DIR/supervisord" ]; then
+        tar -xzf "$temp_file" -C "$SUPERVISORD_DIR" --strip-components=1
+        chmod +x "$SUPERVISORD_DIR/supervisord"
+        log_info "Successfully extracted supervisord for ${platform}"
+    fi
+    
+    rm -f "$temp_file"
+    return 0
+}
+
+# Download protoc
+download_protoc() {
+    local platform=$1
+    local protoc_platform=$2
+    local md5=$3
+    
+    PROTOC_DIR="$TOOLS_DIR/protoc/${platform}"
+    mkdir -p "$PROTOC_DIR"
+    
+    local 
download_url="https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-${protoc_platform}.zip";
+    local temp_file="/tmp/protoc_${platform}.zip"
+    
+    log_info "Downloading protoc for ${platform}..."
+    
+    if ! download_and_verify "$download_url" "$temp_file" "$md5"; then
+        return 1
+    fi
+    
+    if [ ! -f "$PROTOC_DIR/protoc" ]; then
+        unzip -q "$temp_file" -d "$PROTOC_DIR"
+        chmod +x "$PROTOC_DIR/bin/protoc"
+        
+        # Move protoc binary to the root of protoc directory for compatibility
+        if [ -f "$PROTOC_DIR/bin/protoc" ]; then
+            cp "$PROTOC_DIR/bin/protoc" "$PROTOC_DIR/protoc"
+        fi
+        
+        log_info "Successfully extracted protoc for ${platform}"
+    fi
+    
+    rm -f "$temp_file"
+    return 0
+}
+
+# Main function
+main() {
+    log_info "Starting to download binary dependencies..."
+    log_info "Tools directory: $TOOLS_DIR"
+    
+    # Download supervisord for different platforms
+    # MD5 checksums for supervisord v4.2.5
+    download_supervisord "linux_amd64" "x86_64" "" # Add MD5 if available

Review Comment:
   correct arch is 64-bit



##########
vermeer/scripts/download_binaries.sh:
##########
@@ -0,0 +1,190 @@
+#!/bin/bash
+#
+# 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.
+#
+
+set -e
+
+SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
+PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
+TOOLS_DIR="$PROJECT_ROOT/tools"
+
+# Versions
+SUPERVISORD_VERSION="4.2.5"

Review Comment:
   version is 0.6.9



##########
vermeer/asset/assets_vfsdata.go:
##########


Review Comment:
   This file can not be generated automatically. I am working on this.



##########
vermeer/scripts/download_binaries.sh:
##########
@@ -0,0 +1,190 @@
+#!/bin/bash
+#
+# 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.
+#
+
+set -e
+
+SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
+PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
+TOOLS_DIR="$PROJECT_ROOT/tools"
+
+# Versions
+SUPERVISORD_VERSION="4.2.5"
+PROTOC_VERSION="21.12"
+
+# Colors for output
+RED='\033[0;31m'
+GREEN='\033[0;32m'
+YELLOW='\033[1;33m'
+NC='\033[0m' # No Color
+
+log_info() {
+    echo -e "${GREEN}[INFO]${NC} $1"
+}
+
+log_warn() {
+    echo -e "${YELLOW}[WARN]${NC} $1"
+}
+
+log_error() {
+    echo -e "${RED}[ERROR]${NC} $1"
+}
+
+# Download and verify file with MD5 checksum
+download_and_verify() {
+    local url=$1
+    local filepath=$2
+    local expected_md5=$3
+    local md5_cmd
+
+    # Detect md5 command (md5sum on Linux, md5 on macOS)
+    if command -v md5sum &> /dev/null; then
+        md5_cmd="md5sum"
+    elif command -v md5 &> /dev/null; then
+        md5_cmd="md5 -r"
+    else
+        log_warn "MD5 verification tool not found, skipping checksum 
verification"
+        expected_md5=""
+    fi
+
+    if [[ -f $filepath ]]; then
+        if [[ -n $expected_md5 ]]; then
+            log_info "File $filepath exists. Verifying MD5 checksum..."
+            actual_md5=$($md5_cmd "$filepath" | awk '{ print $1 }')
+            if [[ $actual_md5 != $expected_md5 ]]; then
+                log_warn "MD5 checksum mismatch for $filepath. Expected: 
$expected_md5, got: $actual_md5"
+                log_info "Deleting and re-downloading $filepath..."
+                rm -f "$filepath"
+            else
+                log_info "MD5 checksum verified for $filepath"
+                return 0
+            fi
+        else
+            log_info "File $filepath already exists, skipping download"
+            return 0
+        fi
+    fi
+
+    log_info "Downloading $filepath..."
+    if ! curl -L -f "$url" -o "$filepath"; then
+        log_error "Failed to download from $url"
+        return 1
+    fi
+
+    if [[ -n $expected_md5 ]]; then
+        actual_md5=$($md5_cmd "$filepath" | awk '{ print $1 }')
+        if [[ $actual_md5 != $expected_md5 ]]; then
+            log_error "MD5 checksum verification failed after download. 
Expected: $expected_md5, got: $actual_md5"
+            rm -f "$filepath"
+            return 1
+        fi
+        log_info "MD5 checksum verified successfully"
+    fi
+
+    return 0
+}
+
+# Download supervisord
+download_supervisord() {
+    local platform=$1
+    local arch=$2
+    local md5=$3
+    
+    SUPERVISORD_DIR="$TOOLS_DIR/supervisord/${platform}"
+    mkdir -p "$SUPERVISORD_DIR"
+    
+    local 
download_url="https://github.com/ochinchina/supervisord/releases/download/v${SUPERVISORD_VERSION}/supervisord_${SUPERVISORD_VERSION}_Linux_${arch}.tar.gz";
+    local temp_file="/tmp/supervisord_${platform}.tar.gz"
+    
+    log_info "Downloading supervisord for ${platform}..."
+    
+    if ! download_and_verify "$download_url" "$temp_file" "$md5"; then
+        return 1
+    fi
+    
+    if [ ! -f "$SUPERVISORD_DIR/supervisord" ]; then
+        tar -xzf "$temp_file" -C "$SUPERVISORD_DIR" --strip-components=1
+        chmod +x "$SUPERVISORD_DIR/supervisord"
+        log_info "Successfully extracted supervisord for ${platform}"
+    fi
+    
+    rm -f "$temp_file"
+    return 0
+}
+
+# Download protoc
+download_protoc() {
+    local platform=$1
+    local protoc_platform=$2
+    local md5=$3
+    
+    PROTOC_DIR="$TOOLS_DIR/protoc/${platform}"
+    mkdir -p "$PROTOC_DIR"
+    
+    local 
download_url="https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-${protoc_platform}.zip";
+    local temp_file="/tmp/protoc_${platform}.zip"
+    
+    log_info "Downloading protoc for ${platform}..."
+    
+    if ! download_and_verify "$download_url" "$temp_file" "$md5"; then
+        return 1
+    fi
+    
+    if [ ! -f "$PROTOC_DIR/protoc" ]; then
+        unzip -q "$temp_file" -d "$PROTOC_DIR"
+        chmod +x "$PROTOC_DIR/bin/protoc"
+        
+        # Move protoc binary to the root of protoc directory for compatibility
+        if [ -f "$PROTOC_DIR/bin/protoc" ]; then
+            cp "$PROTOC_DIR/bin/protoc" "$PROTOC_DIR/protoc"
+        fi
+        
+        log_info "Successfully extracted protoc for ${platform}"
+    fi
+    
+    rm -f "$temp_file"
+    return 0
+}
+
+# Main function
+main() {
+    log_info "Starting to download binary dependencies..."
+    log_info "Tools directory: $TOOLS_DIR"
+    
+    # Download supervisord for different platforms
+    # MD5 checksums for supervisord v4.2.5
+    download_supervisord "linux_amd64" "x86_64" "" # Add MD5 if available
+    download_supervisord "linux_arm64" "aarch64" "" # Add MD5 if available
+    
+    # Download protoc for different platforms
+    # MD5 checksums for protoc v21.12
+    download_protoc "linux64" "linux-x86_64" "" # Add MD5 if available
+    download_protoc "osxm1" "osx-aarch_64" "" # Add MD5 if available
+    download_protoc "win64" "win64" "" # Add MD5 if available

Review Comment:
   this will be fail because the file downloaded is named 'proto.exe'



##########
vermeer/scripts/download_binaries.sh:
##########
@@ -0,0 +1,190 @@
+#!/bin/bash
+#
+# 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.
+#
+
+set -e
+
+SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
+PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
+TOOLS_DIR="$PROJECT_ROOT/tools"
+
+# Versions
+SUPERVISORD_VERSION="4.2.5"
+PROTOC_VERSION="21.12"
+
+# Colors for output
+RED='\033[0;31m'
+GREEN='\033[0;32m'
+YELLOW='\033[1;33m'
+NC='\033[0m' # No Color
+
+log_info() {
+    echo -e "${GREEN}[INFO]${NC} $1"
+}
+
+log_warn() {
+    echo -e "${YELLOW}[WARN]${NC} $1"
+}
+
+log_error() {
+    echo -e "${RED}[ERROR]${NC} $1"
+}
+
+# Download and verify file with MD5 checksum
+download_and_verify() {
+    local url=$1
+    local filepath=$2
+    local expected_md5=$3
+    local md5_cmd
+
+    # Detect md5 command (md5sum on Linux, md5 on macOS)
+    if command -v md5sum &> /dev/null; then
+        md5_cmd="md5sum"
+    elif command -v md5 &> /dev/null; then
+        md5_cmd="md5 -r"
+    else
+        log_warn "MD5 verification tool not found, skipping checksum 
verification"
+        expected_md5=""
+    fi
+
+    if [[ -f $filepath ]]; then
+        if [[ -n $expected_md5 ]]; then
+            log_info "File $filepath exists. Verifying MD5 checksum..."
+            actual_md5=$($md5_cmd "$filepath" | awk '{ print $1 }')
+            if [[ $actual_md5 != $expected_md5 ]]; then
+                log_warn "MD5 checksum mismatch for $filepath. Expected: 
$expected_md5, got: $actual_md5"
+                log_info "Deleting and re-downloading $filepath..."
+                rm -f "$filepath"
+            else
+                log_info "MD5 checksum verified for $filepath"
+                return 0
+            fi
+        else
+            log_info "File $filepath already exists, skipping download"
+            return 0
+        fi
+    fi
+
+    log_info "Downloading $filepath..."
+    if ! curl -L -f "$url" -o "$filepath"; then
+        log_error "Failed to download from $url"
+        return 1
+    fi
+
+    if [[ -n $expected_md5 ]]; then
+        actual_md5=$($md5_cmd "$filepath" | awk '{ print $1 }')
+        if [[ $actual_md5 != $expected_md5 ]]; then
+            log_error "MD5 checksum verification failed after download. 
Expected: $expected_md5, got: $actual_md5"
+            rm -f "$filepath"
+            return 1
+        fi
+        log_info "MD5 checksum verified successfully"
+    fi
+
+    return 0
+}
+
+# Download supervisord
+download_supervisord() {
+    local platform=$1
+    local arch=$2
+    local md5=$3
+    
+    SUPERVISORD_DIR="$TOOLS_DIR/supervisord/${platform}"
+    mkdir -p "$SUPERVISORD_DIR"
+    
+    local 
download_url="https://github.com/ochinchina/supervisord/releases/download/v${SUPERVISORD_VERSION}/supervisord_${SUPERVISORD_VERSION}_Linux_${arch}.tar.gz";
+    local temp_file="/tmp/supervisord_${platform}.tar.gz"
+    
+    log_info "Downloading supervisord for ${platform}..."
+    
+    if ! download_and_verify "$download_url" "$temp_file" "$md5"; then
+        return 1
+    fi
+    
+    if [ ! -f "$SUPERVISORD_DIR/supervisord" ]; then
+        tar -xzf "$temp_file" -C "$SUPERVISORD_DIR" --strip-components=1
+        chmod +x "$SUPERVISORD_DIR/supervisord"
+        log_info "Successfully extracted supervisord for ${platform}"
+    fi
+    
+    rm -f "$temp_file"
+    return 0
+}
+
+# Download protoc
+download_protoc() {
+    local platform=$1
+    local protoc_platform=$2
+    local md5=$3
+    
+    PROTOC_DIR="$TOOLS_DIR/protoc/${platform}"
+    mkdir -p "$PROTOC_DIR"
+    
+    local 
download_url="https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-${protoc_platform}.zip";
+    local temp_file="/tmp/protoc_${platform}.zip"
+    
+    log_info "Downloading protoc for ${platform}..."
+    
+    if ! download_and_verify "$download_url" "$temp_file" "$md5"; then
+        return 1
+    fi
+    
+    if [ ! -f "$PROTOC_DIR/protoc" ]; then
+        unzip -q "$temp_file" -d "$PROTOC_DIR"
+        chmod +x "$PROTOC_DIR/bin/protoc"
+        
+        # Move protoc binary to the root of protoc directory for compatibility
+        if [ -f "$PROTOC_DIR/bin/protoc" ]; then
+            cp "$PROTOC_DIR/bin/protoc" "$PROTOC_DIR/protoc"
+        fi
+        
+        log_info "Successfully extracted protoc for ${platform}"
+    fi
+    
+    rm -f "$temp_file"
+    return 0
+}
+
+# Main function
+main() {
+    log_info "Starting to download binary dependencies..."
+    log_info "Tools directory: $TOOLS_DIR"
+    
+    # Download supervisord for different platforms
+    # MD5 checksums for supervisord v4.2.5
+    download_supervisord "linux_amd64" "x86_64" "" # Add MD5 if available
+    download_supervisord "linux_arm64" "aarch64" "" # Add MD5 if available

Review Comment:
   correct arch is ARM64



##########
vermeer/scripts/download_binaries.sh:
##########
@@ -0,0 +1,190 @@
+#!/bin/bash
+#
+# 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.
+#
+
+set -e
+
+SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
+PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
+TOOLS_DIR="$PROJECT_ROOT/tools"
+
+# Versions
+SUPERVISORD_VERSION="4.2.5"
+PROTOC_VERSION="21.12"
+
+# Colors for output
+RED='\033[0;31m'
+GREEN='\033[0;32m'
+YELLOW='\033[1;33m'
+NC='\033[0m' # No Color
+
+log_info() {
+    echo -e "${GREEN}[INFO]${NC} $1"
+}
+
+log_warn() {
+    echo -e "${YELLOW}[WARN]${NC} $1"
+}
+
+log_error() {
+    echo -e "${RED}[ERROR]${NC} $1"
+}
+
+# Download and verify file with MD5 checksum
+download_and_verify() {
+    local url=$1
+    local filepath=$2
+    local expected_md5=$3
+    local md5_cmd
+
+    # Detect md5 command (md5sum on Linux, md5 on macOS)
+    if command -v md5sum &> /dev/null; then
+        md5_cmd="md5sum"
+    elif command -v md5 &> /dev/null; then
+        md5_cmd="md5 -r"
+    else
+        log_warn "MD5 verification tool not found, skipping checksum 
verification"
+        expected_md5=""
+    fi
+
+    if [[ -f $filepath ]]; then
+        if [[ -n $expected_md5 ]]; then
+            log_info "File $filepath exists. Verifying MD5 checksum..."
+            actual_md5=$($md5_cmd "$filepath" | awk '{ print $1 }')
+            if [[ $actual_md5 != $expected_md5 ]]; then
+                log_warn "MD5 checksum mismatch for $filepath. Expected: 
$expected_md5, got: $actual_md5"
+                log_info "Deleting and re-downloading $filepath..."
+                rm -f "$filepath"
+            else
+                log_info "MD5 checksum verified for $filepath"
+                return 0
+            fi
+        else
+            log_info "File $filepath already exists, skipping download"
+            return 0
+        fi
+    fi
+
+    log_info "Downloading $filepath..."
+    if ! curl -L -f "$url" -o "$filepath"; then
+        log_error "Failed to download from $url"
+        return 1
+    fi
+
+    if [[ -n $expected_md5 ]]; then
+        actual_md5=$($md5_cmd "$filepath" | awk '{ print $1 }')
+        if [[ $actual_md5 != $expected_md5 ]]; then
+            log_error "MD5 checksum verification failed after download. 
Expected: $expected_md5, got: $actual_md5"
+            rm -f "$filepath"
+            return 1
+        fi
+        log_info "MD5 checksum verified successfully"
+    fi
+
+    return 0
+}
+
+# Download supervisord
+download_supervisord() {
+    local platform=$1
+    local arch=$2
+    local md5=$3
+    
+    SUPERVISORD_DIR="$TOOLS_DIR/supervisord/${platform}"
+    mkdir -p "$SUPERVISORD_DIR"
+    
+    local 
download_url="https://github.com/ochinchina/supervisord/releases/download/v${SUPERVISORD_VERSION}/supervisord_${SUPERVISORD_VERSION}_Linux_${arch}.tar.gz";
+    local temp_file="/tmp/supervisord_${platform}.tar.gz"
+    
+    log_info "Downloading supervisord for ${platform}..."
+    
+    if ! download_and_verify "$download_url" "$temp_file" "$md5"; then
+        return 1
+    fi
+    
+    if [ ! -f "$SUPERVISORD_DIR/supervisord" ]; then
+        tar -xzf "$temp_file" -C "$SUPERVISORD_DIR" --strip-components=1
+        chmod +x "$SUPERVISORD_DIR/supervisord"
+        log_info "Successfully extracted supervisord for ${platform}"
+    fi
+    
+    rm -f "$temp_file"
+    return 0
+}
+
+# Download protoc
+download_protoc() {
+    local platform=$1
+    local protoc_platform=$2
+    local md5=$3
+    
+    PROTOC_DIR="$TOOLS_DIR/protoc/${platform}"
+    mkdir -p "$PROTOC_DIR"
+    
+    local 
download_url="https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-${protoc_platform}.zip";
+    local temp_file="/tmp/protoc_${platform}.zip"
+    
+    log_info "Downloading protoc for ${platform}..."
+    
+    if ! download_and_verify "$download_url" "$temp_file" "$md5"; then
+        return 1
+    fi
+    
+    if [ ! -f "$PROTOC_DIR/protoc" ]; then
+        unzip -q "$temp_file" -d "$PROTOC_DIR"
+        chmod +x "$PROTOC_DIR/bin/protoc"
+        
+        # Move protoc binary to the root of protoc directory for compatibility
+        if [ -f "$PROTOC_DIR/bin/protoc" ]; then
+            cp "$PROTOC_DIR/bin/protoc" "$PROTOC_DIR/protoc"
+        fi
+        
+        log_info "Successfully extracted protoc for ${platform}"
+    fi
+    
+    rm -f "$temp_file"
+    return 0
+}
+
+# Main function
+main() {
+    log_info "Starting to download binary dependencies..."
+    log_info "Tools directory: $TOOLS_DIR"
+    
+    # Download supervisord for different platforms
+    # MD5 checksums for supervisord v4.2.5
+    download_supervisord "linux_amd64" "x86_64" "" # Add MD5 if available
+    download_supervisord "linux_arm64" "aarch64" "" # Add MD5 if available
+    
+    # Download protoc for different platforms
+    # MD5 checksums for protoc v21.12
+    download_protoc "linux64" "linux-x86_64" "" # Add MD5 if available
+    download_protoc "osxm1" "osx-aarch_64" "" # Add MD5 if available
+    download_protoc "win64" "win64" "" # Add MD5 if available

Review Comment:
   may be no need



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to