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
This commit is contained in:
190
packages/github/packages/macos-packages/README.md
Normal file
190
packages/github/packages/macos-packages/README.md
Normal file
@@ -0,0 +1,190 @@
|
||||
# AITBC macOS Service Packages
|
||||
|
||||
## 🍎 **Individual Service Packages for Mac Studio**
|
||||
|
||||
Individual service packages for **Mac Studio** with **Apple Silicon** processors (M1, M2, M3, M4).
|
||||
|
||||
## 📦 **Available Service Packages**
|
||||
|
||||
### **Core Infrastructure**
|
||||
- **`aitbc-node-service-0.1.0-apple-silicon.pkg`** - Blockchain node service
|
||||
- **`aitbc-coordinator-service-0.1.0-apple-silicon.pkg`** - Coordinator API service
|
||||
|
||||
### **Application Services**
|
||||
- **`aitbc-miner-service-0.1.0-apple-silicon.pkg`** - GPU miner service
|
||||
- **`aitbc-marketplace-service-0.1.0-apple-silicon.pkg`** - Marketplace service
|
||||
- **`aitbc-explorer-service-0.1.0-apple-silicon.pkg`** - Explorer service
|
||||
- **`aitbc-wallet-service-0.1.0-apple-silicon.pkg`** - Wallet service
|
||||
- **`aitbc-multimodal-service-0.1.0-apple-silicon.pkg`** - Multimodal AI service
|
||||
|
||||
### **Meta Package**
|
||||
- **`aitbc-all-services-0.1.0-apple-silicon.pkg`** - Complete service stack
|
||||
|
||||
## 🚀 **Installation**
|
||||
|
||||
### **Option 1: Service Installer (Recommended)**
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/packages/macos-services/install-macos-services.sh | bash
|
||||
```
|
||||
|
||||
### **Option 2: Individual Service Installation**
|
||||
```bash
|
||||
# Download specific service
|
||||
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/packages/macos-services/aitbc-node-service-0.1.0-apple-silicon.pkg -o node.pkg
|
||||
sudo installer -pkg node.pkg -target /
|
||||
|
||||
# Install multiple services
|
||||
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/packages/macos-services/aitbc-coordinator-service-0.1.0-apple-silicon.pkg -o coordinator.pkg
|
||||
sudo installer -pkg coordinator.pkg -target /
|
||||
```
|
||||
|
||||
## 🎯 **Service Commands**
|
||||
|
||||
### **Node Service**
|
||||
```bash
|
||||
aitbc-node-service start
|
||||
aitbc-node-service status
|
||||
aitbc-node-service sync
|
||||
aitbc-node-service peers
|
||||
```
|
||||
|
||||
### **Coordinator Service**
|
||||
```bash
|
||||
aitbc-coordinator-service start
|
||||
aitbc-coordinator-service status
|
||||
aitbc-coordinator-service health
|
||||
aitbc-coordinator-service jobs
|
||||
```
|
||||
|
||||
### **Miner Service**
|
||||
```bash
|
||||
aitbc-miner-service start
|
||||
aitbc-miner-service status
|
||||
aitbc-miner-service hashrate
|
||||
aitbc-miner-service earnings
|
||||
```
|
||||
|
||||
### **Marketplace Service**
|
||||
```bash
|
||||
aitbc-marketplace-service start
|
||||
aitbc-marketplace-service status
|
||||
aitbc-marketplace-service listings
|
||||
aitbc-marketplace-service orders
|
||||
```
|
||||
|
||||
### **Explorer Service**
|
||||
```bash
|
||||
aitbc-explorer-service start
|
||||
aitbc-explorer-service status
|
||||
aitbc-explorer-service web
|
||||
aitbc-explorer-service search
|
||||
```
|
||||
|
||||
### **Wallet Service**
|
||||
```bash
|
||||
aitbc-wallet-service start
|
||||
aitbc-wallet-service status
|
||||
aitbc-wallet-service balance
|
||||
aitbc-wallet-service transactions
|
||||
```
|
||||
|
||||
### **Multimodal Service**
|
||||
```bash
|
||||
aitbc-multimodal-service start
|
||||
aitbc-multimodal-service status
|
||||
aitbc-multimodal-service process
|
||||
aitbc-multimodal-service models
|
||||
```
|
||||
|
||||
### **All Services**
|
||||
```bash
|
||||
aitbc-all-services start
|
||||
aitbc-all-services status
|
||||
aitbc-all-services restart
|
||||
aitbc-all-services monitor
|
||||
```
|
||||
|
||||
## 📊 **Service Configuration**
|
||||
|
||||
Each service creates its own configuration file:
|
||||
- **Node**: `~/.config/aitbc/aitbc-node-service.yaml`
|
||||
- **Coordinator**: `~/.config/aitbc/aitbc-coordinator-service.yaml`
|
||||
- **Miner**: `~/.config/aitbc/aitbc-miner-service.yaml`
|
||||
- **Marketplace**: `~/.config/aitbc/aitbc-marketplace-service.yaml`
|
||||
- **Explorer**: `~/.config/aitbc/aitbc-explorer-service.yaml`
|
||||
- **Wallet**: `~/.config/aitbc/aitbc-wallet-service.yaml`
|
||||
- **Multimodal**: `~/.config/aitbc/aitbc-multimodal-service.yaml`
|
||||
|
||||
## 🔧 **Apple Silicon Optimization**
|
||||
|
||||
Each service is optimized for Apple Silicon:
|
||||
- **Native ARM64 execution** - No Rosetta 2 needed
|
||||
- **Apple Neural Engine** - AI/ML acceleration
|
||||
- **Metal framework** - GPU optimization
|
||||
- **Memory bandwidth** - Optimized for unified memory
|
||||
|
||||
## ⚠️ **Important Notes**
|
||||
|
||||
### **Platform Requirements**
|
||||
- **Required**: Apple Silicon Mac (Mac Studio recommended)
|
||||
- **OS**: macOS 12.0+ (Monterey or later)
|
||||
- **Memory**: 16GB+ recommended for multiple services
|
||||
|
||||
### **Demo Packages**
|
||||
These are **demo packages** for demonstration:
|
||||
- Show service structure and installation
|
||||
- Demonstrate Apple Silicon optimization
|
||||
- Provide installation framework
|
||||
|
||||
For **full functionality**, use Python installation:
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install-macos.sh | bash
|
||||
```
|
||||
|
||||
## ✅ **Verification**
|
||||
|
||||
### **Package Integrity**
|
||||
```bash
|
||||
sha256sum -c checksums.txt
|
||||
```
|
||||
|
||||
### **Service Installation Test**
|
||||
```bash
|
||||
# Test all installed services
|
||||
aitbc-node-service --version
|
||||
aitbc-coordinator-service --version
|
||||
aitbc-miner-service --version
|
||||
```
|
||||
|
||||
### **Service Status**
|
||||
```bash
|
||||
# Check service status
|
||||
aitbc-all-services status
|
||||
```
|
||||
|
||||
## 🔄 **Service Dependencies**
|
||||
|
||||
### **Startup Order**
|
||||
1. **Node Service** - Foundation
|
||||
2. **Coordinator Service** - Job coordination
|
||||
3. **Marketplace Service** - GPU marketplace
|
||||
4. **Wallet Service** - Wallet operations
|
||||
5. **Explorer Service** - Blockchain explorer
|
||||
6. **Miner Service** - GPU mining
|
||||
7. **Multimodal Service** - AI processing
|
||||
|
||||
### **Service Communication**
|
||||
- **Node → Coordinator**: Blockchain data access
|
||||
- **Coordinator → Marketplace**: Job coordination
|
||||
- **Marketplace → Miner**: GPU job distribution
|
||||
- **All Services → Node**: Blockchain interaction
|
||||
|
||||
## 📚 **Documentation**
|
||||
|
||||
- **[Main Documentation](../README.md)** - Complete installation guide
|
||||
- **[Apple Silicon Optimization](../DEBIAN_TO_MACOS_BUILD.md)** - Build system details
|
||||
- **[Package Distribution](../packages/README.md)** - Package organization
|
||||
|
||||
---
|
||||
|
||||
**Individual AITBC service packages for Mac Studio!** 🚀
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
12
packages/github/packages/macos-packages/checksums.txt
Normal file
12
packages/github/packages/macos-packages/checksums.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
# AITBC macOS Merged CLI Package Checksums
|
||||
# Generated on Mo 02 Mär 2026 13:22:19 CET
|
||||
# Platform: Mac Studio (Apple Silicon M1/M2/M3/M4)
|
||||
# Algorithm: SHA256
|
||||
|
||||
# Merged CLI Package
|
||||
aitbc-cli-0.1.0-apple-silicon.pkg sha256:4e8251978085d986f857c2fb1cc2419bb41c45a544fdca6d3029ee0dcc174037
|
||||
|
||||
# Installer Scripts
|
||||
install-macos-apple-silicon.sh sha256:2bba9e4837504dc00cd4df4d0cca229dfbc7afc9b87adcc3f9a3030ea909253d
|
||||
install-macos-complete.sh sha256:11090a3f5ed1e917678f6fc6a495e35a3b35dab61563a912644f84f351adec4e
|
||||
install-macos-services.sh sha256:1cf3cf26aad47550ca02aec0dbf671f01a6c6846d004a4cbcc478c94c6c218ce
|
||||
123
packages/github/packages/macos-packages/install-macos-apple-silicon.sh
Executable file
123
packages/github/packages/macos-packages/install-macos-apple-silicon.sh
Executable file
@@ -0,0 +1,123 @@
|
||||
#!/bin/bash
|
||||
|
||||
# AITBC CLI Installer for Mac Studio (Apple Silicon)
|
||||
# Merged General CLI + GPU Optimization
|
||||
|
||||
set -e
|
||||
|
||||
# Colors
|
||||
GREEN='\033[0;32m'
|
||||
BLUE='\033[0;34m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
CYAN='\033[0;36m'
|
||||
NC='\033[0m'
|
||||
|
||||
echo -e "${CYAN}"
|
||||
echo "╔══════════════════════════════════════════════════════════════╗"
|
||||
echo "║ AITBC CLI Installer ║"
|
||||
echo "║ General CLI + GPU Optimization ║"
|
||||
echo "║ Apple Silicon (M1/M2/M3/M4) ║"
|
||||
echo "╚══════════════════════════════════════════════════════════════╝"
|
||||
echo -e "${NC}"
|
||||
|
||||
# Check if running on macOS
|
||||
if [[ "$OSTYPE" != "darwin"* ]]; then
|
||||
echo -e "${RED}❌ This installer is for macOS only${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if running on Apple Silicon
|
||||
ARCH=$(uname -m)
|
||||
if [[ "$ARCH" != "arm64" ]]; then
|
||||
echo -e "${RED}❌ This package is for Apple Silicon Macs only${NC}"
|
||||
echo -e "${RED}❌ Detected architecture: $ARCH${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Detect Apple Silicon chip family
|
||||
echo -e "${BLUE}Detecting Apple Silicon chip...${NC}"
|
||||
if [[ -f "/System/Library/Extensions/AppleSMC.kext/Contents/PlugIns/AppleSMCPowerManagement.kext/Contents/Info.plist" ]]; then
|
||||
CHIP_FAMILY="Apple Silicon (M1/M2/M3/M4)"
|
||||
else
|
||||
CHIP_FAMILY="Apple Silicon"
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}✓ Platform: Mac Studio${NC}"
|
||||
echo -e "${GREEN}✓ Architecture: $CHIP_FAMILY ($ARCH)${NC}"
|
||||
|
||||
# Get script directory
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PACKAGE_FILE="aitbc-cli-0.1.0-apple-silicon.pkg"
|
||||
PACKAGE_PATH="$SCRIPT_DIR/$PACKAGE_FILE"
|
||||
|
||||
# Check if package exists
|
||||
if [[ ! -f "$PACKAGE_PATH" ]]; then
|
||||
echo -e "${RED}❌ Package not found: $PACKAGE_FILE${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "${BLUE}Package: $PACKAGE_FILE${NC}"
|
||||
echo ""
|
||||
echo -e "${YELLOW}⚠ This is a demo package for demonstration purposes.${NC}"
|
||||
echo -e "${YELLOW}⚠ For full functionality, use the Python-based installation:${NC}"
|
||||
echo ""
|
||||
echo -e "${BLUE}curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install-macos.sh | bash${NC}"
|
||||
echo ""
|
||||
|
||||
read -p "Continue with demo installation? (y/N): " -n 1 -r
|
||||
echo
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo "Installation cancelled."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Verify checksums
|
||||
echo -e "${BLUE}Verifying package integrity...${NC}"
|
||||
cd "$SCRIPT_DIR"
|
||||
if sha256sum -c checksums.txt >/dev/null 2>&1; then
|
||||
echo -e "${GREEN}✓ Package verified${NC}"
|
||||
else
|
||||
echo -e "${RED}❌ Package verification failed${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Extract and install demo
|
||||
echo -e "${BLUE}Installing AITBC CLI (General + GPU)...${NC}"
|
||||
tar -xzf "$PACKAGE_FILE"
|
||||
|
||||
# Run post-install script
|
||||
if [[ -f "scripts/postinstall" ]]; then
|
||||
sudo bash scripts/postinstall
|
||||
else
|
||||
echo -e "${YELLOW}⚠ Post-install script not found${NC}"
|
||||
fi
|
||||
|
||||
# Test installation
|
||||
echo -e "${BLUE}Testing installation...${NC}"
|
||||
if command -v aitbc >/dev/null 2>&1; then
|
||||
echo -e "${GREEN}✓ AITBC CLI installed successfully${NC}"
|
||||
echo ""
|
||||
echo -e "${BLUE}Testing CLI:${NC}"
|
||||
aitbc --help
|
||||
else
|
||||
echo -e "${RED}❌ Installation failed${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo -e "${GREEN}🎉 Installation completed successfully!${NC}"
|
||||
echo ""
|
||||
echo "Platform: Mac Studio (Apple Silicon)"
|
||||
echo "Architecture: $CHIP_FAMILY"
|
||||
echo ""
|
||||
echo "Quick start:"
|
||||
echo " aitbc --help"
|
||||
echo " aitbc wallet balance"
|
||||
echo " aitbc gpu optimize"
|
||||
echo " aitbc gpu benchmark"
|
||||
echo ""
|
||||
echo "For full AITBC CLI functionality:"
|
||||
echo -e "${BLUE}curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install-macos.sh | bash${NC}"
|
||||
echo ""
|
||||
echo "Configuration: ~/.config/aitbc/config.yaml"
|
||||
151
packages/github/packages/macos-packages/install-macos-complete.sh
Executable file
151
packages/github/packages/macos-packages/install-macos-complete.sh
Executable file
@@ -0,0 +1,151 @@
|
||||
#!/bin/bash
|
||||
|
||||
# AITBC CLI Complete Installer for Mac Studio (Apple Silicon)
|
||||
# Installs all available packages
|
||||
|
||||
set -e
|
||||
|
||||
# Colors
|
||||
GREEN='\033[0;32m'
|
||||
BLUE='\033[0;34m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
CYAN='\033[0;36m'
|
||||
PURPLE='\033[0;35m'
|
||||
NC='\033[0m'
|
||||
|
||||
echo -e "${CYAN}"
|
||||
echo "╔══════════════════════════════════════════════════════════════╗"
|
||||
echo "║ AITBC CLI Complete Installer ║"
|
||||
echo "║ Mac Studio (Apple Silicon) ║"
|
||||
echo "║ All Packages ║"
|
||||
echo "╚══════════════════════════════════════════════════════════════╝"
|
||||
echo -e "${NC}"
|
||||
|
||||
# Check if running on macOS
|
||||
if [[ "$OSTYPE" != "darwin"* ]]; then
|
||||
echo -e "${RED}❌ This installer is for macOS only${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check Apple Silicon
|
||||
ARCH=$(uname -m)
|
||||
if [[ "$ARCH" != "arm64" ]]; then
|
||||
echo -e "${RED}❌ This package is for Apple Silicon Macs only${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Get script directory
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
# Available packages
|
||||
PACKAGES=(
|
||||
"aitbc-cli-0.1.0-apple-silicon.pkg:Main CLI Package"
|
||||
"aitbc-cli-dev-0.1.0-apple-silicon.pkg:Development Tools"
|
||||
"aitbc-cli-gpu-0.1.0-apple-silicon.pkg:GPU Optimization"
|
||||
)
|
||||
|
||||
echo -e "${BLUE}Available packages:${NC}"
|
||||
for i in "${!PACKAGES[@]}"; do
|
||||
IFS=':' read -r package_name description <<< "${PACKAGES[]}"
|
||||
echo " $((i+1)). $description"
|
||||
done
|
||||
|
||||
echo ""
|
||||
read -p "Select packages to install (e.g., 1,2,3 or all): " selection
|
||||
|
||||
# Parse selection
|
||||
if [[ "$selection" == "all" ]]; then
|
||||
SELECTED_PACKAGES=("${PACKAGES[@]}")
|
||||
else
|
||||
IFS=',' read -ra INDICES <<< "$selection"
|
||||
SELECTED_PACKAGES=()
|
||||
for index in "${INDICES[@]}"; do
|
||||
idx=$((index-1))
|
||||
if [[ $idx -ge 0 && $idx -lt ${#PACKAGES[@]} ]]; then
|
||||
SELECTED_PACKAGES+=("${PACKAGES[$idx]}")
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}Selected packages:${NC}"
|
||||
for package in "${SELECTED_PACKAGES[@]}"; do
|
||||
IFS=':' read -r package_name description <<< "$package"
|
||||
echo " ✓ $description"
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo -e "${YELLOW}⚠ These are demo packages for demonstration purposes.${NC}"
|
||||
echo -e "${YELLOW}⚠ For full functionality, use the Python-based installation:${NC}"
|
||||
echo ""
|
||||
echo -e "${BLUE}curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install-macos.sh | bash${NC}"
|
||||
echo ""
|
||||
|
||||
read -p "Continue with installation? (y/N): " -n 1 -r
|
||||
echo
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo "Installation cancelled."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Install packages
|
||||
for package in "${SELECTED_PACKAGES[@]}"; do
|
||||
IFS=':' read -r package_name description <<< "$package"
|
||||
package_path="$SCRIPT_DIR/$package_name"
|
||||
|
||||
if [[ -f "$package_path" ]]; then
|
||||
echo -e "${BLUE}Installing $description...${NC}"
|
||||
cd "$SCRIPT_DIR"
|
||||
tar -xzf "$package_name"
|
||||
|
||||
if [[ -f "scripts/postinstall" ]]; then
|
||||
sudo bash scripts/postinstall
|
||||
fi
|
||||
|
||||
# Clean up for next package
|
||||
rm -rf pkg-root scripts distribution.dist *.pkg-info 2>/dev/null || true
|
||||
|
||||
echo -e "${GREEN}✓ $description installed${NC}"
|
||||
else
|
||||
echo -e "${YELLOW}⚠ Package not found: $package_name${NC}"
|
||||
fi
|
||||
done
|
||||
|
||||
# Test installation
|
||||
echo -e "${BLUE}Testing installation...${NC}"
|
||||
if command -v aitbc >/dev/null 2>&1; then
|
||||
echo -e "${GREEN}✓ Main CLI available${NC}"
|
||||
fi
|
||||
|
||||
if command -v aitbc-dev >/dev/null 2>&1; then
|
||||
echo -e "${GREEN}✓ Development CLI available${NC}"
|
||||
fi
|
||||
|
||||
if command -v aitbc-gpu >/dev/null 2>&1; then
|
||||
echo -e "${GREEN}✓ GPU CLI available${NC}"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo -e "${GREEN}🎉 Complete installation finished!${NC}"
|
||||
echo ""
|
||||
echo "Installed commands:"
|
||||
if command -v aitbc >/dev/null 2>&1; then
|
||||
echo " aitbc - Main CLI"
|
||||
fi
|
||||
if command -v aitbc-dev >/dev/null 2>&1; then
|
||||
echo " aitbc-dev - Development CLI"
|
||||
fi
|
||||
if command -v aitbc-gpu >/dev/null 2>&1; then
|
||||
echo " aitbc-gpu - GPU Optimization CLI"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Configuration files:"
|
||||
echo " ~/.config/aitbc/config.yaml"
|
||||
echo " ~/.config/aitbc/dev-config.yaml"
|
||||
echo " ~/.config/aitbc/gpu-config.yaml"
|
||||
|
||||
echo ""
|
||||
echo "For full AITBC CLI functionality:"
|
||||
echo -e "${BLUE}curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install-macos.sh | bash${NC}"
|
||||
141
packages/github/packages/macos-packages/install-macos-services.sh
Executable file
141
packages/github/packages/macos-packages/install-macos-services.sh
Executable file
@@ -0,0 +1,141 @@
|
||||
#!/bin/bash
|
||||
|
||||
# AITBC Services Installer for Mac Studio (Apple Silicon)
|
||||
# Install individual service packages
|
||||
|
||||
set -e
|
||||
|
||||
# Colors
|
||||
GREEN='\033[0;32m'
|
||||
BLUE='\033[0;34m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
CYAN='\033[0;36m'
|
||||
NC='\033[0m'
|
||||
|
||||
echo -e "${CYAN}"
|
||||
echo "╔══════════════════════════════════════════════════════════════╗"
|
||||
echo "║ AITBC Services Installer ║"
|
||||
echo "║ Mac Studio (Apple Silicon) ║"
|
||||
echo "║ Individual Services ║"
|
||||
echo "╚══════════════════════════════════════════════════════════════╝"
|
||||
echo -e "${NC}"
|
||||
|
||||
# Check if running on macOS
|
||||
if [[ "$OSTYPE" != "darwin"* ]]; then
|
||||
echo -e "${RED}❌ This installer is for macOS only${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check Apple Silicon
|
||||
ARCH=$(uname -m)
|
||||
if [[ "$ARCH" != "arm64" ]]; then
|
||||
echo -e "${RED}❌ This package is for Apple Silicon Macs only${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Get script directory
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
# Available services
|
||||
SERVICES=(
|
||||
"aitbc-node-service-0.1.0-apple-silicon.pkg:Blockchain Node Service"
|
||||
"aitbc-coordinator-service-0.1.0-apple-silicon.pkg:Coordinator API Service"
|
||||
"aitbc-miner-service-0.1.0-apple-silicon.pkg:GPU Miner Service"
|
||||
"aitbc-marketplace-service-0.1.0-apple-silicon.pkg:Marketplace Service"
|
||||
"aitbc-explorer-service-0.1.0-apple-silicon.pkg:Blockchain Explorer Service"
|
||||
"aitbc-wallet-service-0.1.0-apple-silicon.pkg:Wallet Service"
|
||||
"aitbc-multimodal-service-0.1.0-apple-silicon.pkg:Multimodal AI Service"
|
||||
"aitbc-all-services-0.1.0-apple-silicon.pkg:Complete Service Stack"
|
||||
)
|
||||
|
||||
echo -e "${BLUE}Available services:${NC}"
|
||||
for i in "${!SERVICES[@]}"; do
|
||||
IFS=':' read -r package_name description <<< "${SERVICES[$i]}"
|
||||
echo " $((i+1)). $description"
|
||||
done
|
||||
|
||||
echo ""
|
||||
read -p "Select services to install (e.g., 1,2,3 or all): " selection
|
||||
|
||||
# Parse selection
|
||||
if [[ "$selection" == "all" ]]; then
|
||||
SELECTED_SERVICES=("${SERVICES[@]}")
|
||||
else
|
||||
IFS=',' read -ra INDICES <<< "$selection"
|
||||
SELECTED_SERVICES=()
|
||||
for index in "${INDICES[@]}"; do
|
||||
idx=$((index-1))
|
||||
if [[ $idx -ge 0 && $idx -lt ${#SERVICES[@]} ]]; then
|
||||
SELECTED_SERVICES+=("${SERVICES[$idx]}")
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}Selected services:${NC}"
|
||||
for service in "${SELECTED_SERVICES[@]}"; do
|
||||
IFS=':' read -r package_name description <<< "$service"
|
||||
echo " ✓ $description"
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo -e "${YELLOW}⚠ These are demo packages for demonstration purposes.${NC}"
|
||||
echo -e "${YELLOW}⚠ For full functionality, use the Python-based installation:${NC}"
|
||||
echo ""
|
||||
echo -e "${BLUE}curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install-macos.sh | bash${NC}"
|
||||
echo ""
|
||||
|
||||
read -p "Continue with installation? (y/N): " -n 1 -r
|
||||
echo
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo "Installation cancelled."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Install services
|
||||
for service in "${SELECTED_SERVICES[@]}"; do
|
||||
IFS=':' read -r package_name description <<< "$service"
|
||||
package_path="$SCRIPT_DIR/$package_name"
|
||||
|
||||
if [[ -f "$package_path" ]]; then
|
||||
echo -e "${BLUE}Installing $description...${NC}"
|
||||
cd "$SCRIPT_DIR"
|
||||
tar -xzf "$package_name"
|
||||
|
||||
if [[ -f "scripts/postinstall" ]]; then
|
||||
sudo bash scripts/postinstall
|
||||
fi
|
||||
|
||||
# Clean up for next service
|
||||
rm -rf pkg-root scripts distribution.dist *.pkg-info 2>/dev/null || true
|
||||
|
||||
echo -e "${GREEN}✓ $description installed${NC}"
|
||||
else
|
||||
echo -e "${YELLOW}⚠ Service package not found: $package_name${NC}"
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo -e "${GREEN}🎉 Services installation completed!${NC}"
|
||||
echo ""
|
||||
echo "Installed services:"
|
||||
for service in "${SELECTED_SERVICES[@]}"; do
|
||||
IFS=':' read -r package_name description <<< "$service"
|
||||
service_executable=$(echo "$package_name" | sed 's/-0.1.0-apple-silicon.pkg//')
|
||||
if command -v "$service_executable" >/dev/null 2>&1; then
|
||||
echo " ✓ $service_executable"
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "Configuration files:"
|
||||
for service in "${SELECTED_SERVICES[@]}"; do
|
||||
IFS=':' read -r package_name description <<< "$service"
|
||||
service_config=$(echo "$package_name" | sed 's/-0.1.0-apple-silicon.pkg/.yaml/')
|
||||
echo " ~/.config/aitbc/$service_config"
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "For full AITBC CLI functionality:"
|
||||
echo -e "${BLUE}curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install-macos.sh | bash${NC}"
|
||||
Reference in New Issue
Block a user