#!/bin/bash
set -e
INPUT_DIR=$1
OUTPUT_DIR=$2
MAKESELF_FILE=$3
if [ -z "${INPUT_DIR:-}" ] || [ -z "${OUTPUT_DIR:-}" ] || [ -z "${MAKESELF_FILE:-}" ]; then
echo "Error: Fail to create mindie package."
echo "Usage: bash package.sh [INPUT_DIR] [OUTPUT_DIR] [MAKESELF_FILE]"
exit 1
fi
if [ ! -f "$MAKESELF_FILE" ]; then
echo "Error: makeself binary not found: $MAKESELF_FILE"
exit 1
fi
if [ -z "$PY_TAG" ]; then
echo "Warning: environment variable 'PY_TAG' is not set, try use the current version."
PY_TAG=$(python3 -c 'import sys; print(f"py{sys.version_info.major}{sys.version_info.minor}")')
fi
echo "Set PY_TAG as '${PY_TAG}'"
if [ -z "$PLATFORM" ]; then
PLATFORM=$(arch)
fi
echo "Set PLATFORM as '${PLATFORM}'"
CUR_DIR=$(realpath "$(dirname "$0")")
MAKESELF_HEADER_FILE="$CUR_DIR/../makeself-header.sh"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
PACKAGE_TMP_DIR="$CUR_DIR/.package_${TIMESTAMP}"
mkdir -p "$PACKAGE_TMP_DIR"
cleanup() {
echo "Cleaning temporary directory: $PACKAGE_TMP_DIR"
rm -rf "$PACKAGE_TMP_DIR"
}
trap cleanup EXIT
cat <<EOF > "$PACKAGE_TMP_DIR/version.info"
mindie: ${MINDIE_VERSION:-unknown}
mindie-motor: ${MOTOR_VERSION:-unknown}
mindie-llm: ${LLM_VERSION:-unknown}
mindie-sd: ${SD_VERSION:-unknown}
platform: ${PLATFORM:-$ARCH}
EOF
echo "Version Info:"
cat "$PACKAGE_TMP_DIR/version.info"
mkdir -p "$PACKAGE_TMP_DIR/scripts"
cp "$CUR_DIR/uninstall.sh" "$PACKAGE_TMP_DIR/scripts/"
cp "$CUR_DIR/set_env.sh" "$PACKAGE_TMP_DIR/"
cp "$CUR_DIR/install.sh" "$PACKAGE_TMP_DIR/"
cp "$CUR_DIR/uninstall.sh" "$PACKAGE_TMP_DIR/"
cp "$CUR_DIR/eula_ch.txt" "$PACKAGE_TMP_DIR/"
cp "$CUR_DIR/eula_en.txt" "$PACKAGE_TMP_DIR/"
cp -rf "$INPUT_DIR"/* "$PACKAGE_TMP_DIR/"
mkdir -p "$OUTPUT_DIR"
OUT_FILE="${OUTPUT_DIR}/Ascend-mindie_${MINDIE_VERSION:-unknown}_${PY_TAG}_linux-${PLATFORM:-$(arch)}_abi${USE_CXX11_ABI:-0}.run"
echo "Building installer → $OUT_FILE"
bash "$MAKESELF_FILE" \
--header "$MAKESELF_HEADER_FILE" \
--help-header "$CUR_DIR/help.info" \
--gzip --complevel 4 --nomd5 --sha256 \
--chown \
"$PACKAGE_TMP_DIR/" \
"${OUT_FILE}" \
"Ascend-mindie-llm" \
./install.sh
echo "Generate $OUT_FILE successfully"