|
3 | 3 |
|
4 | 4 | require "fileutils" |
5 | 5 | require "yaml" |
| 6 | +require "json" |
6 | 7 |
|
7 | 8 | # Script to switch between webpack and rspack bundlers |
8 | 9 | class BundlerSwitcher |
@@ -96,28 +97,29 @@ class BundlerSwitcher |
96 | 97 | # Detect package manager |
97 | 98 | package_manager = detect_package_manager |
98 | 99 |
|
99 | | - # Install dependencies |
100 | | - install_cmd = case package_manager |
101 | | - when "yarn" |
102 | | - "yarn add #{deps[:dependencies].join(' ')}" |
103 | | - when "pnpm" |
104 | | - "pnpm add #{deps[:dependencies].join(' ')}" |
105 | | - else |
106 | | - "npm install #{deps[:dependencies].join(' ')}" |
107 | | - end |
108 | | - |
109 | | - # Install dev dependencies |
110 | | - install_dev_cmd = case package_manager |
111 | | - when "yarn" |
112 | | - "yarn add -D #{deps[:dev_dependencies].join(' ')}" |
113 | | - when "pnpm" |
114 | | - "pnpm add -D #{deps[:dev_dependencies].join(' ')}" |
115 | | - else |
116 | | - "npm install --save-dev #{deps[:dev_dependencies].join(' ')}" |
117 | | - end |
118 | | - |
119 | | - system(install_cmd) || abort("❌ Failed to install dependencies") |
120 | | - system(install_dev_cmd) || abort("❌ Failed to install dev dependencies") |
| 100 | + # Install dependencies using array form to prevent command injection |
| 101 | + success = case package_manager |
| 102 | + when "yarn" |
| 103 | + system("yarn", "add", *deps[:dependencies]) |
| 104 | + when "pnpm" |
| 105 | + system("pnpm", "add", *deps[:dependencies]) |
| 106 | + else |
| 107 | + system("npm", "install", *deps[:dependencies]) |
| 108 | + end |
| 109 | + |
| 110 | + abort("❌ Failed to install dependencies") unless success |
| 111 | + |
| 112 | + # Install dev dependencies using array form to prevent command injection |
| 113 | + success = case package_manager |
| 114 | + when "yarn" |
| 115 | + system("yarn", "add", "-D", *deps[:dev_dependencies]) |
| 116 | + when "pnpm" |
| 117 | + system("pnpm", "add", "-D", *deps[:dev_dependencies]) |
| 118 | + else |
| 119 | + system("npm", "install", "--save-dev", *deps[:dev_dependencies]) |
| 120 | + end |
| 121 | + |
| 122 | + abort("❌ Failed to install dev dependencies") unless success |
121 | 123 |
|
122 | 124 | puts "✅ Installed #{@target_bundler} dependencies" |
123 | 125 | end |
|
0 commit comments