1+ #! /bin/bash
2+
3+ # XF₲ Wallet Binary Download Script
4+ # This script ensures all required binaries are downloaded before running tests or builds
5+
6+ set -e
7+
8+ echo " 📦 Ensuring XF₲ Wallet binaries are available"
9+ echo " ============================================="
10+
11+ # Colors for output
12+ RED=' \033[0;31m'
13+ GREEN=' \033[0;32m'
14+ YELLOW=' \033[1;33m'
15+ BLUE=' \033[0;34m'
16+ NC=' \033[0m' # No Color
17+
18+ # Function to print colored output
19+ print_status () {
20+ echo -e " ${BLUE} [INFO]${NC} $1 "
21+ }
22+
23+ print_success () {
24+ echo -e " ${GREEN} [SUCCESS]${NC} $1 "
25+ }
26+
27+ print_warning () {
28+ echo -e " ${YELLOW} [WARNING]${NC} $1 "
29+ }
30+
31+ print_error () {
32+ echo -e " ${RED} [ERROR]${NC} $1 "
33+ }
34+
35+ # Create assets/bin directory if it doesn't exist
36+ mkdir -p assets/bin
37+
38+ # Download xfg-stark-cli binaries for all platforms
39+ print_status " Downloading xfg-stark-cli binaries..."
40+
41+ # Linux binary
42+ if [ ! -f " assets/bin/xfg-stark-cli-linux" ]; then
43+ print_status " Downloading xfg-stark-cli-linux..."
44+ curl -L -o xfg-stark-cli-linux " https://github.com/ColinRitman/xfgwin/releases/download/v0.8.8/xfg-stark-cli-linux"
45+ chmod +x xfg-stark-cli-linux
46+ mv xfg-stark-cli-linux assets/bin/
47+ print_success " xfg-stark-cli-linux downloaded"
48+ else
49+ print_success " xfg-stark-cli-linux already exists"
50+ fi
51+
52+ # macOS binary
53+ if [ ! -f " assets/bin/xfg-stark-cli-macos" ]; then
54+ print_status " Downloading xfg-stark-cli-macos..."
55+ curl -L -o xfg-stark-cli-macos " https://github.com/ColinRitman/xfgwin/releases/download/v0.8.8/xfg-stark-cli-macos"
56+ chmod +x xfg-stark-cli-macos
57+ mv xfg-stark-cli-macos assets/bin/
58+ print_success " xfg-stark-cli-macos downloaded"
59+ else
60+ print_success " xfg-stark-cli-macos already exists"
61+ fi
62+
63+ # Windows binary
64+ if [ ! -f " assets/bin/xfg-stark-cli-windows.exe" ]; then
65+ print_status " Downloading xfg-stark-cli-windows.exe..."
66+ curl -L -o xfg-stark-cli-windows.exe " https://github.com/ColinRitman/xfgwin/releases/download/v0.8.8/xfg-stark-cli-windows.exe"
67+ mv xfg-stark-cli-windows.exe assets/bin/
68+ print_success " xfg-stark-cli-windows.exe downloaded"
69+ else
70+ print_success " xfg-stark-cli-windows.exe already exists"
71+ fi
72+
73+ # Verify all binaries are present and executable
74+ print_status " Verifying binaries..."
75+
76+ required_binaries=(
77+ " assets/bin/xfg-stark-cli-linux"
78+ " assets/bin/xfg-stark-cli-macos"
79+ " assets/bin/xfg-stark-cli-windows.exe"
80+ )
81+
82+ all_present=true
83+ for binary in " ${required_binaries[@]} " ; do
84+ if [ -f " $binary " ]; then
85+ if [[ " $binary " != * .exe ]] && [ ! -x " $binary " ]; then
86+ chmod +x " $binary "
87+ fi
88+ print_success " ✅ $binary is present and ready"
89+ else
90+ print_error " ❌ $binary is missing"
91+ all_present=false
92+ fi
93+ done
94+
95+ if [ " $all_present " = true ]; then
96+ print_success " 🎉 All required binaries are available!"
97+ echo " "
98+ echo " Binaries ready for:"
99+ echo " - Flutter tests"
100+ echo " - Cross-platform builds"
101+ echo " - CI/CD pipelines"
102+ else
103+ print_error " ❌ Some binaries are missing. Please check the download process."
104+ exit 1
105+ fi
106+
107+ # Show binary sizes
108+ echo " "
109+ print_status " Binary information:"
110+ for binary in " ${required_binaries[@]} " ; do
111+ if [ -f " $binary " ]; then
112+ size=$( du -h " $binary " | cut -f1)
113+ echo " $binary : $size "
114+ fi
115+ done
0 commit comments