- 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
133 lines
4.2 KiB
Bash
Executable File
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"
|