feat: startup script for demo-nextjs-app-router
This commit is contained in:
parent
b5979cf25b
commit
57cbbb70de
1
.gitignore
vendored
1
.gitignore
vendored
@ -44,3 +44,4 @@ Thumbs.db
|
|||||||
.vercel
|
.vercel
|
||||||
|
|
||||||
**/.env
|
**/.env
|
||||||
|
**/*.log
|
||||||
|
|||||||
92
apps/demo-nextjs-app-router/startup.sh
Executable file
92
apps/demo-nextjs-app-router/startup.sh
Executable file
@ -0,0 +1,92 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
PORT=4200
|
||||||
|
# Get absolute path to script
|
||||||
|
SCRIPT_PATH="$(readlink -f "$0")"
|
||||||
|
# Get directory containing the script
|
||||||
|
SCRIPT_DIR="$(dirname "$SCRIPT_PATH")"
|
||||||
|
# Set project directory
|
||||||
|
PROJECT_DIR="$SCRIPT_DIR"
|
||||||
|
|
||||||
|
LOG_FILE="$PROJECT_DIR/startup.log"
|
||||||
|
|
||||||
|
# Function to log messages
|
||||||
|
log() {
|
||||||
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Navigate to the project directory
|
||||||
|
cd "$PROJECT_DIR" || {
|
||||||
|
log "Failed to navigate to project directory. Exiting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
log "Starting NextJS application..."
|
||||||
|
|
||||||
|
# Check if Node.js is installed
|
||||||
|
if ! command -v node &> /dev/null; then
|
||||||
|
log "Node.js is not installed. Please install Node.js and try again."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if yarn or npm is installed
|
||||||
|
if command -v yarn &> /dev/null; then
|
||||||
|
PKG_MANAGER="yarn"
|
||||||
|
elif command -v npm &> /dev/null; then
|
||||||
|
PKG_MANAGER="npm"
|
||||||
|
else
|
||||||
|
log "Neither yarn nor npm is installed. Please install a package manager and try again."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "Using $PKG_MANAGER as package manager"
|
||||||
|
|
||||||
|
# Install dependencies if node_modules doesn't exist
|
||||||
|
if [ ! -d "node_modules" ]; then
|
||||||
|
log "Installing dependencies..."
|
||||||
|
if [ "$PKG_MANAGER" = "yarn" ]; then
|
||||||
|
yarn install
|
||||||
|
else
|
||||||
|
npm install
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
log "Failed to install dependencies. Exiting."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
log "Dependencies installed successfully"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Build the application
|
||||||
|
log "Building the application..."
|
||||||
|
if [ "$PKG_MANAGER" = "yarn" ]; then
|
||||||
|
yarn build
|
||||||
|
else
|
||||||
|
npm run build
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
log "Build failed. Exiting."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
log "Build completed successfully"
|
||||||
|
|
||||||
|
# Check if the PORT environment variable is set
|
||||||
|
if [ -z "$PORT" ]; then
|
||||||
|
PORT=3000
|
||||||
|
log "PORT not specified, using default port $PORT"
|
||||||
|
else
|
||||||
|
log "Using port $PORT"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Start the application
|
||||||
|
log "Starting the application on port $PORT..."
|
||||||
|
if [ "$PKG_MANAGER" = "yarn" ]; then
|
||||||
|
PORT=$PORT yarn start
|
||||||
|
else
|
||||||
|
PORT=$PORT npm start
|
||||||
|
fi
|
||||||
|
|
||||||
|
# This part will only be reached if the application crashes
|
||||||
|
log "Application terminated unexpectedly or killed."
|
||||||
|
exit 1
|
||||||
Loading…
x
Reference in New Issue
Block a user