Add StartOS 0.4.0 packaging
This commit is contained in:
Executable
+91
@@ -0,0 +1,91 @@
|
||||
#!/bin/bash
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# YouTube Summarizer — Double-click this file to launch!
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
|
||||
# Move to the folder where this script lives (the project folder)
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
clear
|
||||
echo "============================================"
|
||||
echo " YouTube Summarizer — Starting up..."
|
||||
echo "============================================"
|
||||
echo ""
|
||||
|
||||
# ── Check for Node.js ────────────────────────────────────────
|
||||
if ! command -v node &> /dev/null; then
|
||||
echo "ERROR: Node.js is not installed."
|
||||
echo ""
|
||||
echo "To install it, open Terminal and run:"
|
||||
echo " brew install node"
|
||||
echo ""
|
||||
echo "(If you don't have Homebrew, install it first:"
|
||||
echo " /bin/bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\""
|
||||
echo ")"
|
||||
echo ""
|
||||
echo "Press any key to close..."
|
||||
read -n 1
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ── Check for yt-dlp ─────────────────────────────────────────
|
||||
if ! command -v yt-dlp &> /dev/null; then
|
||||
echo "yt-dlp not found. Installing via Homebrew..."
|
||||
if command -v brew &> /dev/null; then
|
||||
brew install yt-dlp
|
||||
else
|
||||
echo "ERROR: yt-dlp is not installed and Homebrew is not available."
|
||||
echo "Install yt-dlp manually: https://github.com/yt-dlp/yt-dlp"
|
||||
echo ""
|
||||
echo "Press any key to close..."
|
||||
read -n 1
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# ── Install npm dependencies if needed ───────────────────────
|
||||
if [ ! -d "server/node_modules" ]; then
|
||||
echo "First run — installing dependencies..."
|
||||
cd server
|
||||
npm install
|
||||
cd ..
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# ── Start the server ─────────────────────────────────────────
|
||||
echo "Starting server..."
|
||||
echo ""
|
||||
|
||||
# Start server in the background
|
||||
cd server
|
||||
node index.js &
|
||||
SERVER_PID=$!
|
||||
cd ..
|
||||
|
||||
# Wait for server to be ready
|
||||
echo "Waiting for server to start..."
|
||||
for i in {1..20}; do
|
||||
if curl -s http://localhost:3001/api/health > /dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
sleep 0.5
|
||||
done
|
||||
|
||||
# ── Open browser ─────────────────────────────────────────────
|
||||
echo ""
|
||||
echo "Opening browser..."
|
||||
open http://localhost:3001
|
||||
echo ""
|
||||
echo "============================================"
|
||||
echo " App is running at http://localhost:3001"
|
||||
echo "============================================"
|
||||
echo ""
|
||||
echo "Leave this window open while using the app."
|
||||
echo "To stop the server, close this window or press Ctrl+C."
|
||||
echo ""
|
||||
|
||||
# Keep the script running so the server stays alive
|
||||
# When user closes the terminal window or presses Ctrl+C, clean up
|
||||
trap "echo ''; echo 'Shutting down server...'; kill $SERVER_PID 2>/dev/null; exit 0" INT TERM
|
||||
|
||||
wait $SERVER_PID
|
||||
Reference in New Issue
Block a user