comty/packages/app/scripts/postinstall.sh

79 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
# Output colors
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
# Get the directory path where the script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Get the project root directory path
PROJECT_ROOT="$( cd "$SCRIPT_DIR/../../.." && pwd )"
echo -e "${YELLOW}=== Starting installation of dependencies in submodules ===${NC}"
echo -e "${YELLOW}Project directory: ${GREEN}$PROJECT_ROOT${NC}"
# Check if git is installed
if ! command -v git &> /dev/null; then
echo -e "${RED}Error: git is not installed. Please install it first.${NC}"
exit 1
fi
# Check if npm is installed
if ! command -v npm &> /dev/null; then
echo -e "${RED}Error: npm is not installed. Please install it first.${NC}"
exit 1
fi
# Change to the project root directory
cd "$PROJECT_ROOT"
# Get the list of submodules
SUBMODULES=$(git submodule --quiet foreach 'echo $path')
# Check if there are submodules
if [ -z "$SUBMODULES" ]; then
echo -e "${YELLOW}No submodules found in this repository.${NC}"
exit 0
fi
# Initialize submodules if necessary
echo -e "${YELLOW}Initializing submodules...${NC}"
git submodule update --init --recursive
# For each submodule, install dependencies
for submodule in $SUBMODULES; do
echo -e "${YELLOW}Installing dependencies in: ${GREEN}$submodule${NC}"
SUBMODULE_PATH="$PROJECT_ROOT/$submodule"
# Check if package.json exists in the submodule directory
if [ -f "$SUBMODULE_PATH/package.json" ]; then
# Change to the submodule directory and run npm install
(cd "$SUBMODULE_PATH" && npm install) || {
echo -e "${RED}Error installing dependencies in $submodule${NC}"
}
echo -e "${GREEN}✓ Dependencies installed in $submodule${NC}"
else
# Check if install-dependencies.sh exists in the submodule directory
if [ -f "$SUBMODULE_PATH/install-dependencies.sh" ]; then
echo -e "${YELLOW}Running custom installation script in $submodule${NC}"
# Make sure the script has execution permissions
chmod +x "$SUBMODULE_PATH/install-dependencies.sh"
# Run the custom installation script
(cd "$SUBMODULE_PATH" && ./install-dependencies.sh) || {
echo -e "${RED}Error executing install-dependencies.sh in $submodule${NC}"
}
echo -e "${GREEN}✓ Custom installation script executed in $submodule${NC}"
else
echo -e "${YELLOW}⚠ Neither package.json nor install-dependencies.sh found in $submodule${NC}"
fi
fi
done
echo -e "${YELLOW}Dumping licenses...${NC}"
cd "$(pwd)/packages/app"
node "./scripts/dump-licenses.js"
echo -e "${GREEN}=== Installation of dependencies in submodules completed ===${NC}"