-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild_mac_pkg.sh
More file actions
executable file
·112 lines (93 loc) · 3.28 KB
/
build_mac_pkg.sh
File metadata and controls
executable file
·112 lines (93 loc) · 3.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/bin/bash
# macOS PKG Builder for AuraDB
# This script creates a .pkg installer for macOS
set -e
echo "🔨 Building AuraDB for macOS..."
# 1. Build Binaries
echo "Building release binaries..."
cargo build --release --bin aura-server
cargo build --release --bin aura-cli
# 2. Create Staging Directory Structure
echo "Creating package structure..."
PKG_ROOT="target/pkg"
rm -rf "$PKG_ROOT"
mkdir -p "$PKG_ROOT/usr/local/bin"
mkdir -p "$PKG_ROOT/Library/LaunchDaemons"
mkdir -p "$PKG_ROOT/var/lib/aura"
mkdir -p "$PKG_ROOT/var/log/aura"
# 3. Copy Files
echo "Copying binaries and configuration..."
cp "target/release/aura-server" "$PKG_ROOT/usr/local/bin/"
cp "target/release/aura" "$PKG_ROOT/usr/local/bin/"
cp "distribution/launchd/com.aura.db.plist" "$PKG_ROOT/Library/LaunchDaemons/"
# 4. Set Permissions
chmod 755 "$PKG_ROOT/usr/local/bin/aura-server"
chmod 755 "$PKG_ROOT/usr/local/bin/aura"
chmod 644 "$PKG_ROOT/Library/LaunchDaemons/com.aura.db.plist"
# 5. Create preinstall script
cat > "$PKG_ROOT/preinstall" << 'EOF'
#!/bin/bash
# Preinstall script for AuraDB on macOS
# Create _aura user if it doesn't exist
if ! dscl . -read /Users/_aura >/dev/null 2>&1; then
echo "Creating _aura system user..."
# Create system user with UID in system range
MAX_ID=$(dscl . -list /Users UniqueID | awk 'BEGIN{max=0} {if($2>max) max=$2} END{print max+1}')
if [ $MAX_ID -lt 500 ]; then MAX_ID=500; fi
dscl . -create /Users/_aura
dscl . -create /Users/_aura UserShell /usr/bin/false
dscl . -create /Users/_aura RealName "AuraDB System User"
dscl . -create /Users/_aura UniqueID $MAX_ID
dscl . -create /Users/_aura PrimaryGroupID 20
dscl . -create /Users/_aura NFSHomeDirectory /var/lib/aura
else
echo "_aura user already exists"
fi
# Create directories
mkdir -p /var/lib/aura
mkdir -p /var/log/aura
chown _aura:admin /var/lib/aura
chown _aura:admin /var/log/aura
chmod 700 /var/lib/aura
chmod 755 /var/log/aura
echo "Preinstall completed"
EOF
chmod 755 "$PKG_ROOT/preinstall"
# 6. Create postinstall script
cat > "$PKG_ROOT/postinstall" << 'EOF'
#!/bin/bash
# Postinstall script for AuraDB on macOS
echo "Starting AuraDB service..."
# Load the launchd service
launchctl load /Library/LaunchDaemons/com.aura.db.plist
# Wait a moment for service to start
sleep 2
# Check if service is running
if launchctl list | grep -q com.aura.db; then
echo "✅ AuraDB service started successfully"
else
echo "❌ Failed to start AuraDB service"
exit 1
fi
echo ""
echo "AuraDB installation completed!"
echo "Service: com.aura.db"
echo "Binaries: /usr/local/bin/aura-server, /usr/local/bin/aura"
echo ""
echo "To check status: sudo launchctl list com.aura.db"
echo "To view logs: tail -f /var/log/aura.log"
echo "To stop service: sudo launchctl unload /Library/LaunchDaemons/com.aura.db.plist"
echo "To start service: sudo launchctl load /Library/LaunchDaemons/com.aura.db.plist"
EOF
chmod 755 "$PKG_ROOT/postinstall"
# 7. Build PKG
echo "Building .pkg installer..."
pkgbuild --root "$PKG_ROOT" \
--identifier com.aura.db \
--version 0.1.0 \
--scripts "$PKG_ROOT" \
--install-location / \
"target/aura-db-0.1.0.pkg"
echo "✅ macOS Installer built: target/aura-db-0.1.0.pkg"
echo ""
echo "To install: sudo installer -pkg target/aura-db-0.1.0.pkg -target /"