|
1 | 1 | #!/bin/sh |
2 | 2 |
|
3 | | -# Accept affected projects as command line arguments |
4 | | -# Usage: ./make-package-json-publish-ready.sh project1 project2 project3 ... |
5 | | -# Example: ./make-package-json-publish-ready.sh $(npx nx show projects --affected) |
6 | | - |
7 | | -if [ $# -eq 0 ]; then |
8 | | - echo "No affected projects provided." |
9 | | - echo "Usage: $0 <project1> <project2> ..." |
10 | | - echo "Example: $0 \$(npx nx show projects --affected --base=origin/develop --head=HEAD)" |
11 | | - exit 0 |
12 | | -fi |
13 | | - |
14 | 3 | # Define the base directory of your monorepo |
15 | 4 | BASE_DIR=$(pwd) |
16 | 5 | # Define the directory containing your packages |
17 | 6 | PACKAGES_DIR="$BASE_DIR/packages" |
18 | 7 |
|
19 | | -echo "Processing $# affected package(s)..." |
20 | | -echo "Projects: $*" |
21 | | -echo "" |
22 | | - |
23 | | -# Convert project names to package directories |
24 | | -for project in "$@"; do |
25 | | - # Extract package name from @rudderstack/analytics-js format |
26 | | - package_name=$(echo "$project" | sed 's/@rudderstack\///') |
27 | | - |
28 | | - # Map project names to their directory names |
29 | | - case "$package_name" in |
30 | | - "analytics-js-loading-scripts") package_dir="loading-scripts" ;; |
31 | | - "analytics-js-sanity-suite") package_dir="sanity-suite" ;; |
32 | | - "rudder-sdk-js") package_dir="analytics-v1.1" ;; |
33 | | - *) package_dir="$package_name" ;; |
34 | | - esac |
35 | | - |
36 | | - package="$PACKAGES_DIR/$package_dir" |
37 | | - |
| 8 | +# Iterate over each package directory |
| 9 | +for package in "$PACKAGES_DIR"/*; do |
38 | 10 | if [ -d "$package" ]; then |
39 | 11 | PACKAGE_JSON="$package/package.json" |
40 | 12 | if [ -f "$PACKAGE_JSON" ]; then |
41 | 13 | echo "Cleaning $PACKAGE_JSON..." |
42 | | - |
43 | | - # Special handling for legacy SDK (rudder-sdk-js) |
44 | | - if [ "$package_name" = "rudder-sdk-js" ]; then |
45 | | - # Clean and then add back the postinstall script |
46 | | - 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" |
47 | | - else |
48 | | - # Standard cleaning for all other packages |
49 | | - jq 'del(.dependencies, .devDependencies, .peerDependencies, .optionalDependencies, .overrides, .scripts, .browserslist)' "$PACKAGE_JSON" > "$package/package_cleaned.json" && mv "$package/package_cleaned.json" "$PACKAGE_JSON" |
50 | | - fi |
| 14 | + jq 'del(.dependencies, .devDependencies, .peerDependencies, .optionalDependencies, .overrides, .scripts, .browserslist)' "$PACKAGE_JSON" > "$package/package_cleaned.json" && mv "$package/package_cleaned.json" "$PACKAGE_JSON" |
51 | 15 | else |
52 | 16 | echo "No package.json found in $package" |
53 | 17 | fi |
54 | | - else |
55 | | - echo "Package directory not found: $package" |
56 | 18 | fi |
57 | 19 | done |
58 | 20 |
|
59 | | -echo "Cleaning completed for affected packages." |
| 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." |
0 commit comments