1+ #! /bin/bash
2+
3+ # Script to initialize and run local DynamoDB
4+ # Checks for required dependencies and downloads/runs DynamoDB Local
5+
6+ set -e
7+
8+ DYNAMODB_DIR=" $( dirname " $0 " ) "
9+ DYNAMODB_TAR=" $DYNAMODB_DIR /dynamodb_local_latest.tar.gz"
10+ DYNAMODB_JAR=" $DYNAMODB_DIR /DynamoDBLocal.jar"
11+ DYNAMODB_LIB=" $DYNAMODB_DIR /DynamoDBLocal_lib"
12+
13+ # Check for Java
14+ if ! java -version > /dev/null 2>&1 ; then
15+ echo " Error: Java is not properly installed or not in PATH."
16+ echo " Please install Java 8 or later from https://adoptium.net/ or using Homebrew: 'brew install openjdk'"
17+ exit 1
18+ fi
19+
20+ # Check Java version (optional, but informative)
21+ JAVA_VERSION=$( java -version 2>&1 | head -n 1)
22+ echo " Java found: $JAVA_VERSION "
23+
24+ # Check if DynamoDB Local is already downloaded
25+ if [ ! -f " $DYNAMODB_JAR " ]; then
26+ echo " DynamoDB Local not found. Downloading..."
27+
28+ # Download the latest DynamoDB Local
29+ if ! curl -L -o " $DYNAMODB_TAR " " https://s3.us-west-2.amazonaws.com/dynamodb-local/dynamodb_local_latest.tar.gz" ; then
30+ echo " Error: Failed to download DynamoDB Local."
31+ exit 1
32+ fi
33+
34+ # Extract the archive
35+ if ! tar -xzf " $DYNAMODB_TAR " -C " $DYNAMODB_DIR " ; then
36+ echo " Error: Failed to extract DynamoDB Local archive."
37+ exit 1
38+ fi
39+
40+ # Clean up the tar file
41+ rm " $DYNAMODB_TAR "
42+
43+ echo " DynamoDB Local downloaded and extracted successfully."
44+ else
45+ echo " DynamoDB Local is already downloaded."
46+ fi
47+
48+ # Check if DynamoDB Local is already running (on default port 8000)
49+ if lsof -Pi :8000 -sTCP:LISTEN -t > /dev/null 2>&1 ; then
50+ echo " DynamoDB Local is already running on port 8000."
51+ else
52+ echo " Starting DynamoDB Local..."
53+
54+ # Start DynamoDB Local in the background
55+ java -Djava.library.path=" $DYNAMODB_LIB " -jar " $DYNAMODB_JAR " -sharedDb &
56+
57+ # Wait for it to start (DynamoDB Local may take a few seconds)
58+ echo " Waiting for DynamoDB Local to start..."
59+ sleep 5
60+
61+ # Verify it's running
62+ if lsof -Pi :8000 -sTCP:LISTEN -t > /dev/null 2>&1 ; then
63+ echo " DynamoDB Local started successfully on port 8000."
64+ else
65+ echo " Warning: DynamoDB Local may not have started properly. Check for errors above."
66+ fi
67+ fi
68+
69+ echo " Local DynamoDB initialization complete."
0 commit comments