|
1 | 1 | #!/bin/sh |
2 | 2 |
|
| 3 | +# Accept base and head as parameters (default to develop and HEAD) |
| 4 | +BASE_REF=${1:-develop} |
| 5 | +HEAD_REF=${2:-HEAD} |
| 6 | + |
3 | 7 | # Define the base directory of your monorepo |
4 | 8 | BASE_DIR=$(pwd) |
5 | 9 | # Define the directory containing your packages |
6 | 10 | PACKAGES_DIR="$BASE_DIR/packages" |
7 | 11 |
|
8 | | -# Iterate over each package directory |
9 | | -for package in "$PACKAGES_DIR"/*; do |
| 12 | +# Get affected projects using Nx |
| 13 | +echo "Getting affected packages (base: $BASE_REF, head: $HEAD_REF)..." |
| 14 | +AFFECTED_PROJECTS=$(npx nx show projects --affected --base="$BASE_REF" --head="$HEAD_REF" 2>/dev/null) |
| 15 | + |
| 16 | +if [ -z "$AFFECTED_PROJECTS" ]; then |
| 17 | + echo "No affected packages found." |
| 18 | + exit 0 |
| 19 | +fi |
| 20 | + |
| 21 | +echo "Affected packages:" |
| 22 | +echo "$AFFECTED_PROJECTS" |
| 23 | +echo "" |
| 24 | + |
| 25 | +# Convert project names to package directories |
| 26 | +for project in $AFFECTED_PROJECTS; do |
| 27 | + # Extract package name from @rudderstack/analytics-js format |
| 28 | + package_name=$(echo "$project" | sed 's/@rudderstack\///') |
| 29 | + |
| 30 | + # Map project names to their directory names |
| 31 | + case "$package_name" in |
| 32 | + "analytics-js-loading-scripts") package_dir="loading-scripts" ;; |
| 33 | + "analytics-js-sanity-suite") package_dir="sanity-suite" ;; |
| 34 | + "rudder-sdk-js") package_dir="analytics-v1.1" ;; |
| 35 | + *) package_dir="$package_name" ;; |
| 36 | + esac |
| 37 | + |
| 38 | + package="$PACKAGES_DIR/$package_dir" |
| 39 | + |
10 | 40 | if [ -d "$package" ]; then |
11 | 41 | PACKAGE_JSON="$package/package.json" |
12 | 42 | if [ -f "$PACKAGE_JSON" ]; then |
13 | 43 | echo "Cleaning $PACKAGE_JSON..." |
14 | | - jq 'del(.dependencies, .devDependencies, .peerDependencies, .optionalDependencies, .overrides, .scripts, .browserslist)' "$PACKAGE_JSON" > "$package/package_cleaned.json" && mv "$package/package_cleaned.json" "$PACKAGE_JSON" |
| 44 | + |
| 45 | + # Special handling for legacy SDK (rudder-sdk-js) |
| 46 | + if [ "$package_name" = "rudder-sdk-js" ]; then |
| 47 | + # Clean and then add back the postinstall script |
| 48 | + jq 'del(.dependencies, .devDependencies, .peerDependencies, .optionalDependencies, .overrides, .scripts, .browserslist) | .scripts = {"postinstall": "echo '\''This package is deprecated and no longer maintained. While your events are still being tracked and delivered, we strongly recommend you to migrate to the latest @rudderstack/analytics-js (https://www.npmjs.com/package/@rudderstack/analytics-js) package for enhanced features, security updates, and ongoing support. For more details, visit the migration guide: https://www.rudderstack.com/docs/sources/event-streams/sdks/rudderstack-javascript-sdk/migration-guide/'\''" }' "$PACKAGE_JSON" > "$package/package_cleaned.json" && mv "$package/package_cleaned.json" "$PACKAGE_JSON" |
| 49 | + else |
| 50 | + # Standard cleaning for all other packages |
| 51 | + jq 'del(.dependencies, .devDependencies, .peerDependencies, .optionalDependencies, .overrides, .scripts, .browserslist)' "$PACKAGE_JSON" > "$package/package_cleaned.json" && mv "$package/package_cleaned.json" "$PACKAGE_JSON" |
| 52 | + fi |
15 | 53 | else |
16 | 54 | echo "No package.json found in $package" |
17 | 55 | fi |
| 56 | + else |
| 57 | + echo "Package directory not found: $package" |
18 | 58 | fi |
19 | 59 | done |
20 | 60 |
|
21 | | -# Add postinstall script to the legacy SDK package.json |
22 | | -legacy_sdk_package="$PACKAGES_DIR/analytics-v1.1" |
23 | | -package_json="$legacy_sdk_package/package.json" |
24 | | - |
25 | | -echo "Adding postinstall script to $package_json..." |
26 | | -jq '.scripts = (.scripts // {}) | .scripts.postinstall = "echo '\''This package is deprecated and no longer maintained. While your events are still being tracked and delivered, we strongly recommend you to migrate to the latest @rudderstack/analytics-js (https://www.npmjs.com/package/@rudderstack/analytics-js) package for enhanced features, security updates, and ongoing support. For more details, visit the migration guide: https://www.rudderstack.com/docs/sources/event-streams/sdks/rudderstack-javascript-sdk/migration-guide/'\''"' "$package_json" > "$legacy_sdk_package/package_cleaned.json" && mv "$legacy_sdk_package/package_cleaned.json" "$package_json" |
27 | | - |
28 | | -echo "Cleaning completed for all packages." |
| 61 | +echo "Cleaning completed for affected packages." |
0 commit comments