|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +# Exit on any error |
| 4 | +set -e |
| 5 | + |
| 6 | +# Colors for output |
| 7 | +RED='\033[0;31m' |
| 8 | +GREEN='\033[0;32m' |
| 9 | +YELLOW='\033[1;33m' |
| 10 | +NC='\033[0m' # No Color |
| 11 | + |
| 12 | +# Get the version from package.json |
| 13 | +VERSION=$(node -p "require('./package.json').version") |
| 14 | + |
| 15 | +if [ -z "$VERSION" ]; then |
| 16 | + echo -e "${RED}Error: Could not read version from package.json${NC}" |
| 17 | + exit 1 |
| 18 | +fi |
| 19 | + |
| 20 | +echo -e "${YELLOW}Syncing version ${VERSION} across all files...${NC}" |
| 21 | + |
| 22 | +# Update composer.json |
| 23 | +if [ -f "composer.json" ]; then |
| 24 | + echo "Updating composer.json..." |
| 25 | + # Use sed to preserve original formatting (tabs/spaces) |
| 26 | + sed -i.bak -E "s/(\"version\":[[:space:]]*\")[^\"]*(\",?)/\1$VERSION\2/" composer.json && rm composer.json.bak |
| 27 | + echo -e "${GREEN}✓ Updated composer.json${NC}" |
| 28 | +else |
| 29 | + echo -e "${YELLOW}⚠ composer.json not found${NC}" |
| 30 | +fi |
| 31 | + |
| 32 | +# Update readme.txt (WordPress style) |
| 33 | +if [ -f "readme.txt" ]; then |
| 34 | + echo "Updating readme.txt..." |
| 35 | + sed -i.bak -E "s/(Stable tag:|Version:)[[:space:]]*[0-9]+\.[0-9]+\.[0-9]+/\1 $VERSION/g" readme.txt && rm readme.txt.bak |
| 36 | + echo -e "${GREEN}✓ Updated readme.txt${NC}" |
| 37 | +else |
| 38 | + echo -e "${YELLOW}⚠ readme.txt not found${NC}" |
| 39 | +fi |
| 40 | + |
| 41 | +# Update wp-graphql-webhooks.php |
| 42 | +PLUGIN_FILE="wp-graphql-webhooks.php" |
| 43 | + |
| 44 | +if [ -f "$PLUGIN_FILE" ]; then |
| 45 | + echo "Updating main plugin file: $PLUGIN_FILE..." |
| 46 | + |
| 47 | + # Update WordPress plugin header version (handles beta versions) |
| 48 | + sed -i.bak -E "s/(\* Version:[[:space:]]*)[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9]+)?/\1$VERSION/g" "$PLUGIN_FILE" && rm "${PLUGIN_FILE}.bak" |
| 49 | + |
| 50 | + # Update WPGRAPHQL_WEBHOOKS_VERSION define statement |
| 51 | + sed -i.bak -E "s/(define\([[:space:]]*['\"]WPGRAPHQL_WEBHOOKS_VERSION['\"][[:space:]]*,[[:space:]]*['\"])[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9]+)?(['\"][[:space:]]*\))/\1$VERSION\3/g" "$PLUGIN_FILE" && rm "${PLUGIN_FILE}.bak" |
| 52 | + |
| 53 | + echo -e "${GREEN}✓ Updated $PLUGIN_FILE${NC}" |
| 54 | +else |
| 55 | + echo -e "${YELLOW}⚠ $PLUGIN_FILE not found${NC}" |
| 56 | +fi |
| 57 | + |
| 58 | +echo -e "${GREEN}✅ Version sync complete! All files updated to version ${VERSION}${NC}" |
| 59 | +echo -e "${YELLOW}Files will be staged by the workflow's 'git add .' command${NC}"`` |
0 commit comments