@jayree/sfdx-plugin-manifest
A Salesforce CLI plugin containing commands for creating manifest files from Salesforce orgs or git commits of sfdx projects.
Install
sfdx plugins:install @jayree/sfdx-plugin-manifest
Commands
sfdx jayree:manifest:beta:git:diff
Create a project manifest and destructiveChanges manifest that lists the metadata components you want to deploy or delete based on changes in your git history.
USAGE
$ sfdx jayree:manifest:beta:git:diff [REF1] [REF2] [--json] [--api-version <value>] [-d <value>] [--output-dir <value>]
[--destructive-changes-only]
ARGUMENTS
REF1 base commit or branch
REF2 commit or branch to compare to the base commit
FLAGS
-d, --source-dir=<value>... Path to the local source files to include in the manifest.
--api-version=<value> Override the api version used for api requests made by this command
--destructive-changes-only Create a destructiveChanges manifest only.
--output-dir=<value> Directory to save the created manifest files.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Create a project manifest and destructiveChanges manifest that lists the metadata components you want to deploy or
delete based on changes in your git history.
Use this command to create a manifest and destructiveChanges manifest file based on the difference (git diff) of two
git refs.
You can use all ways to spell <commit> which are valid for 'git diff' (See https://git-scm.com/docs/git-diff).
EXAMPLES
Uses the changes between two arbitrary <commit>.
$ sfdx jayree:manifest:beta:git:diff <commit> <commit>
$ sfdx jayree:manifest:beta:git:diff <commit>..<commit>
Uses the changes on the branch containing and up to the second <commit>, starting at a common ancestor of both
<commit>.
$ sfdx jayree:manifest:beta:git:diff <commit>...<commit>
Uses the diff of what is unique in branchB (REF2) and unique in branchA (REF1).
$ sfdx jayree:manifest:beta:git:diff branchA..branchB
Uses the diff of what is unique in branchB (REF2).
$ sfdx jayree:manifest:beta:git:diff branchA...branchB
Specify the flags before or after the REF args
$ sfdx jayree:manifest:beta:git:diff --output-dir package <commit> <commit>
$ sfdx jayree:manifest:beta:git:diff <commit> <commit> --output-dir package
If you specify the 'source-dir' flag before the REF args, use '--' to separate the args from the 'source-dir'
values.
$ sfdx jayree:manifest:beta:git:diff --source-dir force-app -- <commit> <commit>
FLAG DESCRIPTIONS
-d, --source-dir=<value>... Path to the local source files to include in the manifest.
The supplied path can be to a single file (in which case the operation is applied to only one file) or to a folder
(in which case the operation is applied to all metadata types in the directory and its subdirectories).
You can specify this flag more than once.
--destructive-changes-only Create a destructiveChanges manifest only.
Use this flag to create a 'destructiveChanges.xml' and a blank 'package.xml'.
--output-dir=<value> Directory to save the created manifest files.
The location can be an absolute path or relative to the current working directory.
See code: src/commands/jayree/manifest/beta/git/diff.ts
sfdx jayree:manifest:cleanup
removes those tags from a manifest file that are present in a second manifest file
USAGE
$ sfdx jayree:manifest:cleanup [-x <filepath>] [-f <filepath>] [--json] [--loglevel
trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
FLAGS
-f, --file=<value> path to the second 'cleanup'
manifest file
-x, --manifest=<value> path to the manifest file
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL) [default: warn] logging level for
this command invocation
DESCRIPTION
removes those tags from a manifest file that are present in a second manifest file
Use this command to remove components or metadata types from a manifes file.
If the 'cleanup' manifest file (--file) doesn't exist, a template file is created, which can then be modified.
EXAMPLES
$ sfdx jayree:manifest:cleanup --manifest=package.xml --file=packageignore.xml
See code: src/commands/jayree/manifest/cleanup.ts
sfdx jayree:manifest:generate
generate a complete manifest file form the specified org
USAGE
$ sfdx jayree:manifest:generate [-q <array>] [-c] [-w] [--includeflowversions] [-f <string>] [-x | -a] [-u <string>]
[--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
FLAGS
-a, --excludeall exclude all packages from output
-c, --matchcase enable 'match case' for the
quickfilter
-f, --file=<value> write to 'file' instead of stdout
-q, --quickfilter=<value> csv separated list of metadata type,
member or file names to filter on
-u, --targetusername=<value> username or alias for the target
org; overrides default target org
-w, --matchwholeword enable 'match whole word' for the
quickfilter
-x, --excludemanaged exclude managed packages from output
--apiversion=<value> override the api version used for
api requests made by this command
--includeflowversions include flow versions as with api
version 43.0
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL) [default: warn] logging level for
this command invocation
DESCRIPTION
generate a complete manifest file form the specified org
Use this command to generate a manifest file based on an existing org.
EXAMPLES
$ sfdx jayree:manifest:generate --targetusername myOrg@example.com
<?xml version='1.0' encoding='UTF-8'?>
<Package xmlns='http://soap.sforce.com/2006/04/metadata'>...</Package>
See code: src/commands/jayree/manifest/generate.ts
sfdx jayree:manifest:git:diff
create a manifest and destructiveChanges manifest using 'git diff' data
USAGE
$ sfdx jayree:manifest:git:diff [-p <array>] [-o <string>] [-d] [--json] [--loglevel
trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
ARGUMENTS
REF1 base commit or branch
REF2 commit or branch to compare to the base commit
FLAGS
-d, --destructivechangesonly create a destructiveChanges manifest
only (package.xml will be empty)
-o, --outputdir=<value> directory to save the created
manifest files
-p, --sourcepath=<value> comma-separated list of source file
paths to limit the diff
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL) [default: warn] logging level for
this command invocation
DESCRIPTION
create a manifest and destructiveChanges manifest using 'git diff' data
Use this command to create a manifest and destructiveChanges manifest file based on the difference (git diff) of two
git refs.
You can use all ways to spell <commit> which are valid for 'git diff'.
(See https://git-scm.com/docs/git-diff)
EXAMPLES
$ sfdx jayree:manifest:git:diff <commit> <commit>
$ sfdx jayree:manifest:git:diff <commit>..<commit>
uses the changes between two arbitrary <commit>
$ sfdx jayree:manifest:git:diff <commit>...<commit>
uses the changes on the branch containing and up to the second <commit>, starting at a common ancestor of both <commit>.
$ sfdx jayree:manifest:git:diff branchA..branchB
uses the diff of what is unique in branchB (REF2) and unique in branchA (REF1)
$ sfdx jayree:manifest:git:diff branchA...branchB
uses the diff of what is unique in branchB (REF2)
See code: src/commands/jayree/manifest/git/diff.ts