Files
chatlog/script/package.sh
Shen Junzheng 78cce92ce3 x
2025-03-19 13:11:09 +08:00

60 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
set -eu
set -o pipefail
[ "$#" = "1" ] && [ "$1" = '-v' ] && set -x
OUTPUT_DIR="bin"
PACKAGES_DIR="packages"
TEMP_DIR="temp_package"
VERSION=$(git describe --tags --always --dirty="-dev")
CHECKSUMS_FILE="$PACKAGES_DIR/checksums.txt"
make -f Makefile crossbuild
rm -rf $PACKAGES_DIR $TEMP_DIR
mkdir -p $PACKAGES_DIR $TEMP_DIR
echo "" > $CHECKSUMS_FILE
for binary in $OUTPUT_DIR/chatlog_*_*; do
binary_name=$(basename $binary)
# quick start
if [[ $binary_name == "chatlog_darwin_amd64" ]]; then
cp "$binary" "$PACKAGES_DIR/chatlog_macos"
echo "$(sha256sum $PACKAGES_DIR/chatlog_macos | sed "s|$PACKAGES_DIR/||")" >> $CHECKSUMS_FILE
elif [[ $binary_name == "chatlog_windows_amd64" ]]; then
cp "$binary" "$PACKAGES_DIR/chatlog_windows.exe"
echo "$(sha256sum $PACKAGES_DIR/chatlog_windows.exe | sed "s|$PACKAGES_DIR/||")" >> $CHECKSUMS_FILE
elif [[ $binary_name == "chatlog_linux_amd64" ]]; then
cp "$binary" "$PACKAGES_DIR/chatlog_linux"
echo "$(sha256sum $PACKAGES_DIR/chatlog_linux | sed "s|$PACKAGES_DIR/||")" >> $CHECKSUMS_FILE
fi
cp "README.md" "LICENSE" $TEMP_DIR
package_name=""
os_arch=$(echo $binary_name | cut -d'_' -f 2-)
if [[ $binary_name == *"_windows_"* ]]; then
cp "$binary" "$TEMP_DIR/chatlog.exe"
package_name="chatlog_${VERSION}_${os_arch}.zip"
zip -j "$PACKAGES_DIR/$package_name" -r $TEMP_DIR/*
else
cp "$binary" "$TEMP_DIR/chatlog"
package_name="chatlog_${VERSION}_${os_arch}.tar.gz"
tar -czf "$PACKAGES_DIR/$package_name" -C $TEMP_DIR .
fi
rm -rf $TEMP_DIR/*
if [[ ! -z "$package_name" ]]; then
echo "$(sha256sum $PACKAGES_DIR/$package_name | sed "s|$PACKAGES_DIR/||")" >> $CHECKSUMS_FILE
fi
done
rm -rf $TEMP_DIR
echo "📦 All packages and their sha256 checksums have been created in $PACKAGES_DIR/"