Scripting Dependent Packages in Salesforce
1 min readJul 29, 2021
Salesforce has provided a script to automate the installation of dependent packages. Their script was written using Shell Script and Python. Below I have performed the same functionality but using Batch and Node.
I used Batch because I was working on Windows where it is natively supported, and I used Node because it has native support for parsing JSON, the format the CLI displays data in.
echo off
setlocal EnableDelayedExpansion
SET PACKAGE=04tB0000000NmnHIASSET query = "SELECT Dependencies FROM SubscriberPackageVersion WHERE Id='%PACKAGE%'"SET "VAR="
FOR /F "tokens=* USEBACKQ" %%F IN (`sfdx force:data:soql:query -t -q "SELECT Dependencies FROM SubscriberPackageVersion WHERE Id='%PACKAGE%'" --json`) DO (
SET VAR=!VAR!%%F
)FOR /F "tokens=* USEBACKQ" %%F IN (`node -e "if ((JSON.parse(process.argv.slice()[1]).result.records[0].Dependencies) === 'None') {console.log('nonen');} else { for(const kvp of (JSON.parse(process.argv.slice()[1]).result.records[0].Dependencies.ids)){console.log(kvp.subscriberPackageVersionId);}; }" "%VAR:"=\"%"`) DO (
if %%F== None (Echo "No dependent packages") else (call sfdx force:package:install --package "%%F" --publishwait 10 --wait 10)
)