chore: cleanup build artifacts and add .gitignore
This commit is contained in:
76
build_binary.sh
Executable file
76
build_binary.sh
Executable file
@@ -0,0 +1,76 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "🔨 Building pyhdwallet standalone binary..."
|
||||
|
||||
# Check venv more strictly
|
||||
if [ -z "$VIRTUAL_ENV" ] || [[ "$VIRTUAL_ENV" != *"hdwalletpy"* ]]; then
|
||||
echo "❌ Not in virtual environment!"
|
||||
echo ""
|
||||
echo "Activate it first:"
|
||||
echo " source .venv/bin/activate"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Install PyInstaller if needed
|
||||
if ! pip show pyinstaller &>/dev/null; then
|
||||
echo "📦 Installing PyInstaller..."
|
||||
pip install pyinstaller
|
||||
fi
|
||||
|
||||
# Create patched version for frozen builds
|
||||
echo "📝 Creating frozen-compatible version..."
|
||||
python3 << 'PATCH'
|
||||
with open('src/pyhdwallet.py', 'r') as f:
|
||||
content = f.read()
|
||||
|
||||
# Patch _require() for PyInstaller
|
||||
content = content.replace(
|
||||
"""def _require(mod: str, pkg: str) -> None:
|
||||
try:
|
||||
__import__(mod)""",
|
||||
"""def _require(mod: str, pkg: str) -> None:
|
||||
# Skip check in PyInstaller frozen executable
|
||||
if getattr(sys, 'frozen', False):
|
||||
return
|
||||
try:
|
||||
__import__(mod)"""
|
||||
)
|
||||
|
||||
with open('src/pyhdwallet_frozen.py', 'w') as f:
|
||||
f.write(content)
|
||||
PATCH
|
||||
|
||||
# Clean previous builds
|
||||
rm -rf build/ dist/ *.spec
|
||||
|
||||
# Build
|
||||
echo "🔧 Building with PyInstaller..."
|
||||
pyinstaller --onefile \
|
||||
--name pyhdwallet \
|
||||
--clean \
|
||||
--collect-all bip_utils \
|
||||
--collect-all pgpy \
|
||||
--collect-all nacl \
|
||||
--collect-all pyzipper \
|
||||
--collect-all coincurve \
|
||||
--copy-metadata coincurve \
|
||||
src/pyhdwallet_frozen.py
|
||||
|
||||
# Clean up temp file
|
||||
rm src/pyhdwallet_frozen.py
|
||||
|
||||
# Test
|
||||
echo ""
|
||||
echo "✅ Testing binary..."
|
||||
./dist/pyhdwallet test
|
||||
|
||||
# Show results
|
||||
echo ""
|
||||
echo "🎉 Binary created successfully!"
|
||||
echo " Location: dist/pyhdwallet"
|
||||
echo " Size: $(du -h dist/pyhdwallet | cut -f1)"
|
||||
echo ""
|
||||
echo "Quick test:"
|
||||
echo " ./dist/pyhdwallet gen --help"
|
||||
echo " ./dist/pyhdwallet gen-child --help"
|
||||
Reference in New Issue
Block a user