Files
aitbc/cli/build_deb.sh
oib ccedbace53 chore: remove configuration files and enhance blockchain explorer with advanced search, analytics, and export features
- Delete .aitbc.yaml.example CLI configuration template
- Delete .lycheeignore link checker exclusion rules
- Delete .nvmrc Node.js version specification
- Add advanced search panel with filters for address, amount range, transaction type, time range, and validator
- Add analytics dashboard with transaction volume, active addresses, and block time metrics
- Add Chart.js integration
2026-03-02 15:38:25 +01:00

133 lines
4.2 KiB
Bash
Executable File

#!/bin/bash
# AITBC CLI Debian Package Build Script
set -e
# Colors for output
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
echo -e "${BLUE}Building AITBC CLI Debian packages...${NC}"
# Get script directory
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
DEBIAN_DIR="$SCRIPT_DIR/debian"
DIST_DIR="$SCRIPT_DIR/dist"
DEB_OUTPUT_DIR="$SCRIPT_DIR/../packages/deb"
# Create output directory
mkdir -p "$DEB_OUTPUT_DIR"
# Create directories
mkdir -p "$DEBIAN_DIR/usr/share/aitbc/dist"
mkdir -p "$DEBIAN_DIR/usr/share/aitbc/man"
mkdir -p "$DEBIAN_DIR/usr/share/aitbc/completion"
mkdir -p "$DEBIAN_DIR/usr/share/man/man1"
mkdir -p "$DEBIAN_DIR/etc/bash_completion.d"
mkdir -p "$DEBIAN_DIR/etc/aitbc"
# Copy files to package structure
echo -e "${BLUE}Copying files to package structure...${NC}"
# Copy wheel file
if [ -f "$DIST_DIR/aitbc_cli-0.1.0-py3-none-any.whl" ]; then
cp "$DIST_DIR/aitbc_cli-0.1.0-py3-none-any.whl" "$DEBIAN_DIR/usr/share/aitbc/dist/"
echo -e "${GREEN}✓ Copied wheel file${NC}"
else
echo -e "${RED}❌ Wheel file not found! Please build it first.${NC}"
exit 1
fi
# Copy man page
if [ -f "$SCRIPT_DIR/man/aitbc.1" ]; then
cp "$SCRIPT_DIR/man/aitbc.1" "$DEBIAN_DIR/usr/share/aitbc/man/"
cp "$SCRIPT_DIR/man/aitbc.1" "$DEBIAN_DIR/usr/share/man/man1/"
echo -e "${GREEN}✓ Copied man page${NC}"
else
echo -e "${RED}❌ Man page not found!${NC}"
exit 1
fi
# Copy completion script
if [ -f "$SCRIPT_DIR/aitbc_completion.sh" ]; then
cp "$SCRIPT_DIR/aitbc_completion.sh" "$DEBIAN_DIR/usr/share/aitbc/completion/"
chmod +x "$DEBIAN_DIR/usr/share/aitbc/completion/aitbc_completion.sh"
echo -e "${GREEN}✓ Copied completion script${NC}"
else
echo -e "${RED}❌ Completion script not found!${NC}"
exit 1
fi
# Calculate package size
echo -e "${BLUE}Calculating package size...${NC}"
PACKAGE_SIZE=$(du -sm "$DEBIAN_DIR" | cut -f1)
# Update control file with size
sed -i "s/Installed-Size:.*/Installed-Size: $PACKAGE_SIZE/" "$DEBIAN_DIR/DEBIAN/control" 2>/dev/null || echo "Installed-Size: $PACKAGE_SIZE" >> "$DEBIAN_DIR/DEBIAN/control"
# Generate md5sums
echo -e "${BLUE}Generating md5sums...${NC}"
cd "$DEBIAN_DIR"
find . -type f ! -path './DEBIAN/*' -exec md5sum {} + | sed 's/\.\///' > DEBIAN/md5sums
cd - > /dev/null
# Build the packages
echo -e "${BLUE}Building Debian packages...${NC}"
# Build aitbc-cli package
echo -e "${BLUE}Building aitbc-cli package...${NC}"
dpkg-deb --build "$DEBIAN_DIR" "$DEB_OUTPUT_DIR/aitbc-cli_0.1.0_all.deb"
# Create dev package (just control file differences)
echo -e "${BLUE}Building aitbc-cli-dev package...${NC}"
cp -r "$DEBIAN_DIR" "${DEBIAN_DIR}_dev"
# Update dev package control
cp "$DEBIAN_DIR/DEBIAN/control_dev" "${DEBIAN_DIR}_dev/DEBIAN/control"
# Build dev package
dpkg-deb --build "${DEBIAN_DIR}_dev" "$DEB_OUTPUT_DIR/aitbc-cli-dev_0.1.0_all.deb"
# Clean up temporary directories
rm -rf "${DEBIAN_DIR}_dev"
# Verify packages
echo -e "${BLUE}Verifying packages...${NC}"
if [ -f "$DEB_OUTPUT_DIR/aitbc-cli_0.1.0_all.deb" ]; then
echo -e "${GREEN}✓ aitbc-cli package created: $DEB_OUTPUT_DIR/aitbc-cli_0.1.0_all.deb"
dpkg-deb --info "$DEB_OUTPUT_DIR/aitbc-cli_0.1.0_all.deb" | head -10
else
echo -e "${RED}❌ aitbc-cli package creation failed${NC}"
exit 1
fi
if [ -f "$DEB_OUTPUT_DIR/aitbc-cli-dev_0.1.0_all.deb" ]; then
echo -e "${GREEN}✓ aitbc-cli-dev package created: $DEB_OUTPUT_DIR/aitbc-cli-dev_0.1.0_all.deb"
dpkg-deb --info "$DEB_OUTPUT_DIR/aitbc-cli-dev_0.1.0_all.deb" | head -10
else
echo -e "${RED}❌ aitbc-cli-dev package creation failed${NC}"
exit 1
fi
echo ""
echo -e "${GREEN}🎉 Debian packages built successfully!${NC}"
echo ""
echo "Packages created:"
echo " - $DEB_OUTPUT_DIR/aitbc-cli_0.1.0_all.deb"
echo " - $DEB_OUTPUT_DIR/aitbc-cli-dev_0.1.0_all.deb"
echo ""
echo "To install on Debian 13 Trixie:"
echo " sudo dpkg -i $DEB_OUTPUT_DIR/aitbc-cli_0.1.0_all.deb"
echo " sudo apt-get install -f # Fix dependencies if needed"
echo ""
echo "Package contents:"
echo " - CLI installed in /opt/aitbc/venv/bin/aitbc"
echo " - Symlink at /usr/local/bin/aitbc"
echo " - Man page: man aitbc"
echo " - Bash completion: /etc/bash_completion.d/aitbc"
echo " - Config file: /etc/aitbc/config.yaml"