Monorepo for Aesthetic.Computer
aesthetic.computer
1#!/usr/bin/env fish
2# Deploy Xbox app package via Device Portal from Mac
3# Usage: ./deploy-xbox.fish <path-to-msix>
4
5set -l XBOX_IP "192.168.1.101"
6set -l PORTAL_PORT "11443"
7set -l PORTAL_URL "https://$XBOX_IP:$PORTAL_PORT"
8
9# Check for package argument
10if test (count $argv) -lt 1
11 echo "🎮 Xbox App Deployer"
12 echo ""
13 echo "Usage: ./deploy-xbox.fish <package.msix>"
14 echo ""
15 echo "Steps:"
16 echo " 1. Download .msix from GitHub Actions artifacts"
17 echo " 2. Run: ./deploy-xbox.fish AestheticComputer.msix"
18 echo ""
19 echo "Or deploy via browser:"
20 echo " 1. Open $PORTAL_URL in browser"
21 echo " 2. Accept certificate warning"
22 echo " 3. Go to 'My games & apps' → 'Add'"
23 echo " 4. Upload the .msix file"
24 exit 1
25end
26
27set -l package_path $argv[1]
28
29if not test -f $package_path
30 echo "❌ Package not found: $package_path"
31 exit 1
32end
33
34echo "🎮 Deploying to Xbox at $XBOX_IP..."
35echo " Package: $package_path"
36echo ""
37
38# Check if Xbox is reachable
39echo "🏓 Checking Xbox connectivity..."
40if not ping -c 1 -W 2 $XBOX_IP >/dev/null 2>&1
41 # Try via Mac host if in container
42 if ssh jas@host.docker.internal "ping -c 1 -W 2 $XBOX_IP" >/dev/null 2>&1
43 echo " ✅ Xbox reachable via Mac host"
44 set -l USE_MAC_HOST true
45 else
46 echo " ❌ Xbox not reachable"
47 exit 1
48 end
49else
50 echo " ✅ Xbox reachable"
51end
52
53# Device Portal API endpoint for app installation
54# POST /api/app/packagemanager/package
55# Multipart form with file
56
57echo ""
58echo "📦 Uploading package to Xbox Device Portal..."
59echo " This may take a minute..."
60echo ""
61
62# Note: Device Portal requires authentication if enabled
63# You may need to add -u "username:password"
64# Default is no auth in Dev Mode, but you can set one in Dev Home
65
66set -l response (curl -k -s -w "\n%{http_code}" \
67 -X POST \
68 -F "file=@$package_path" \
69 "$PORTAL_URL/api/app/packagemanager/package" 2>&1)
70
71set -l http_code (echo $response | tail -1)
72set -l body (echo $response | head -n -1)
73
74if test "$http_code" = "200" -o "$http_code" = "204"
75 echo "✅ Package uploaded successfully!"
76 echo ""
77 echo "📺 The app should now appear in 'My games & apps' on Xbox"
78 echo " Look for 'Aesthetic Computer'"
79else if test "$http_code" = "000"
80 echo "⚠️ Could not connect to Device Portal"
81 echo ""
82 echo "Make sure:"
83 echo " 1. Xbox is in Developer Mode"
84 echo " 2. Device Portal is enabled in Dev Home app"
85 echo " 3. You can access $PORTAL_URL in browser"
86 echo ""
87 echo "Alternative: Upload manually via browser"
88 echo " 1. Open $PORTAL_URL"
89 echo " 2. Go to 'My games & apps' → 'Add'"
90 echo " 3. Select $package_path"
91else
92 echo "❌ Upload failed (HTTP $http_code)"
93 echo " Response: $body"
94 echo ""
95 echo "Try manual upload via browser: $PORTAL_URL"
96end