#!/bin/bash
WORKING_DIR=$(pwd)
echo "工作目录: $WORKING_DIR"
BUILD_TYPE="${1:-release}"
ARCH="${2:-x86_64}"
THIRD_PARTY_PATH="${3:-third_party}"
BASE_NAME="cann-oam-tools"
OBS_BASE_URL="https://ascend-cann.obs.cn-north-4.myhuaweicloud.com/CANN"
STABLE_URL="https://ascend-cann.obs.cn-north-4.myhuaweicloud.com/CANN/20260213_newest/cann-oam-tools-release-${ARCH}.tar.gz"
BUNDLE_DIR="bundle"
OUTPUT_FILE="${BASE_NAME}-${BUILD_TYPE}-${ARCH}.tar.gz"
usage() {
echo "Usage: $0 [build_type] [architecture]"
echo "Example: $0 release x86_64"
echo "Defaults: build_type=release, architecture=x86_64"
echo ""
}
echo "Current directory: $(pwd)"
echo ""
echo "Creating directories..."
mkdir -p "$BUNDLE_DIR"
if [ -f "./build/$OUTPUT_FILE" ]; then
echo "Using compiled ./build/$OUTPUT_FILE"
chmod 755 ./build/$OUTPUT_FILE
cp ./build/$OUTPUT_FILE $OUTPUT_FILE
if [ $? -ne 0 ]; then
echo "Error: Failed to cp $OUTPUT_FILE"
exit 1
fi
elif [ -f "./$THIRD_PARTY_PATH/$OUTPUT_FILE" ]; then
echo "Using compiled ./$THIRD_PARTY_PATH/$OUTPUT_FILE"
chmod 755 ./$THIRD_PARTY_PATH/$OUTPUT_FILE
cp ./$THIRD_PARTY_PATH/$OUTPUT_FILE $OUTPUT_FILE
if [ $? -ne 0 ]; then
echo "Error: Failed to cp $OUTPUT_FILE"
exit 1
fi
else
get_wednesday_date() {
local day_of_week=$(date +%u)
local offset=$((3 - day_of_week))
if [ $offset -gt 0 ]; then
offset=$((offset - 7))
fi
if date --version &>/dev/null; then
date -d "$offset days" +%Y%m%d
else
if [ $offset -ge 0 ]; then
date -v+${offset}d +%Y%m%d
else
date -v${offset}d +%Y%m%d
fi
fi
}
CURRENT_DATE_STR=$(get_wednesday_date)
echo "Using date: $CURRENT_DATE_STR"
URL_TODAY="${OBS_BASE_URL}/${CURRENT_DATE_STR}_newest/cann-oam-tools-release-${ARCH}.tar.gz"
download_success=false
try_download() {
local url=$1
local label=$2
echo "----------------------------------------------"
echo "Attempting to download $label..."
echo "URL: $url"
wget -O "$OUTPUT_FILE" "$url" \
--no-check-certificate \
--tries=1 \
--timeout=5 \
--connect-timeout=5
return $?
}
if try_download "$URL_TODAY" "PACKAGE ($CURRENT_DATE_STR)"; then
echo "Success: Downloaded package from $CURRENT_DATE_STR."
download_success=true
else
echo "Notice: Package from $CURRENT_DATE_STR not found or download failed."
if try_download "$STABLE_URL" "STABLE PACKAGE"; then
echo "Success: Downloaded stable package."
download_success=true
else
echo "Error: Both package $CURRENT_DATE_STR and stable package failed to download."
fi
fi
if [ "$download_success" = false ]; then
echo "Error: Failed to get $OUTPUT_FILE from any source."
[ -f "$OUTPUT_FILE" ] && rm "$OUTPUT_FILE"
rm -rf "$BUNDLE_DIR"
exit 1
fi
fi
tar -zxvf "$OUTPUT_FILE" -C "$BUNDLE_DIR"> /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "Package verification successful"
echo "Extracted to: $OUTPUT_FILE"
echo "Extracted directory structure:"
find "$BUNDLE_DIR" -type f | head -20
else
rm -rf "$BUNDLE_DIR"
echo "Warning: Package verification failed"
fi
echo "Removing downloaded installer..."
rm -f "$OUTPUT_FILE"
echo ""
echo "=============================================="
echo "Final Status: DONE"
echo "Location: $BUNDLE_DIR/"
echo "Architecture: $ARCH"
echo "=============================================="