81 lines
2.1 KiB
Bash
Executable File
81 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Build script for dbus-anchor-alarm package
|
|
#
|
|
# Usage:
|
|
# ./build-package.sh
|
|
# ./build-package.sh --version 1.0.0
|
|
#
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
VERSION="2.0.0"
|
|
OUTPUT_DIR="$SCRIPT_DIR"
|
|
PACKAGE_NAME="dbus-anchor-alarm"
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case $1 in
|
|
--version|-v) VERSION="$2"; shift 2 ;;
|
|
--output|-o) OUTPUT_DIR="$2"; shift 2 ;;
|
|
--help|-h)
|
|
echo "Usage: $0 [--version VERSION] [--output PATH]"
|
|
exit 0
|
|
;;
|
|
*) echo "Unknown option: $1"; exit 1 ;;
|
|
esac
|
|
done
|
|
|
|
BUILD_DIR=$(mktemp -d)
|
|
PACKAGE_DIR="$BUILD_DIR/$PACKAGE_NAME"
|
|
|
|
echo "Building $PACKAGE_NAME v$VERSION..."
|
|
|
|
mkdir -p "$PACKAGE_DIR/service/log"
|
|
|
|
# Copy application files
|
|
cp "$SCRIPT_DIR/anchor_alarm.py" "$PACKAGE_DIR/"
|
|
cp "$SCRIPT_DIR/config.py" "$PACKAGE_DIR/"
|
|
|
|
for module in sensor_reader.py catenary.py anchor_tracker.py drag_detector.py track_buffer.py debug_logger.py; do
|
|
if [ -f "$SCRIPT_DIR/$module" ]; then
|
|
cp "$SCRIPT_DIR/$module" "$PACKAGE_DIR/"
|
|
fi
|
|
done
|
|
|
|
# Copy service and install files
|
|
cp "$SCRIPT_DIR/service/run" "$PACKAGE_DIR/service/"
|
|
cp "$SCRIPT_DIR/service/log/run" "$PACKAGE_DIR/service/log/"
|
|
cp "$SCRIPT_DIR/install.sh" "$PACKAGE_DIR/"
|
|
cp "$SCRIPT_DIR/uninstall.sh" "$PACKAGE_DIR/"
|
|
|
|
# Set permissions
|
|
chmod +x "$PACKAGE_DIR/anchor_alarm.py"
|
|
chmod +x "$PACKAGE_DIR/install.sh"
|
|
chmod +x "$PACKAGE_DIR/uninstall.sh"
|
|
chmod +x "$PACKAGE_DIR/service/run"
|
|
chmod +x "$PACKAGE_DIR/service/log/run"
|
|
|
|
# Create archive
|
|
mkdir -p "$OUTPUT_DIR"
|
|
TARBALL="$PACKAGE_NAME-$VERSION.tar.gz"
|
|
OUTPUT_ABS="$(cd "$OUTPUT_DIR" && pwd)"
|
|
cd "$BUILD_DIR"
|
|
tar --format=ustar -czf "$OUTPUT_ABS/$TARBALL" "$PACKAGE_NAME"
|
|
|
|
# SHA256 checksum
|
|
cd "$OUTPUT_ABS"
|
|
sha256sum "$TARBALL" > "$TARBALL.sha256"
|
|
|
|
rm -rf "$BUILD_DIR"
|
|
|
|
echo "Package: $OUTPUT_ABS/$TARBALL"
|
|
echo "Checksum: $OUTPUT_ABS/$TARBALL.sha256"
|
|
echo ""
|
|
echo "Install on Venus OS:"
|
|
echo " scp $OUTPUT_ABS/$TARBALL root@<device-ip>:/data/"
|
|
echo " ssh root@<device-ip>"
|
|
echo " cd /data && tar -xzf $TARBALL"
|
|
echo " bash /data/$PACKAGE_NAME/install.sh"
|