60 lines
1.9 KiB
Bash
Executable File
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/" |