The CLI itemres command
The Sitecore Items as Resources plugin includes an itemres command. This command creates an item package in a resource file with configurable options.
To install the Items as Resources plugin, run the following code:
Usage
You can use the command as follows:
Subcommands
You can use the following subcommands:
create- creates a resource package.unicorn- creates a Unicorn resource package.cleanup- cleans up database items contained in .dat files if the item data in both entries are equal. This subcommand is available for CLI 4.1 or later.
The create subcommand
The create subcommand creates a new items and resources package. The CLI names the package based on the convention items.{databaseName}.{providedName}.dat.
You can use the following options with the create subcommand:
| Option | Description |
|---|---|
-o, --output <OUTPUT> | Required. Package path to output (extension added if not provided). |
--overwrite <OVERWRITE> | Overwrite an existing package. |
-i, --include <INCLUDE> | Include module configurations. Wildcards and multiple values are allowed. |
-e, --exclude <EXCLUDE> | Explicitly exclude module configurations. Wildcards and multiple values are allowed. |
-c, --config <CONFIG> | Path to the root sitecore.config directory.Default: current working directory. |
-v, --verbose | Report additional diagnostic and performance data. |
-t, --trace | Report additional diagnostic and performance data. |
-?, -h, --help | Help for the command. |
The following are examples of using the create subcommand:
- Command: Result
dotnet sitecore itemres create -o TestPackage: Creates theitems.{databaseName}.TestPackage.datfile. The file includes all modules.dotnet sitecore itemres create -o test/TestPackage: Creates theitems.{databaseName}.TestPackage.datfile in thetestfolder. The file includes all modules.- Attempt to create
TestPackagewith a duplicated name:dotnet sitecore itemres create -o TestPackage: Does not create the package and returns with the following message:
- Attempt to create
TestPackagewith a duplicated name:dotnet sitecore itemres create -o TestPackage --overwrite: Creates and overwrites the package. dotnet sitecore itemres create -o TestPackage -i Project.Content.Test: Creates the package and includes only theProject.Content.Testmodule.dotnet sitecore itemres create -o TestPackage -i Project.Content.Test, Project.Content: Creates the package and includes only theProject.Content.TestandProject.Contentmodules.dotnet sitecore itemres create -o TestPackage -i *Test: Creates the package and includes only theProject.Content.Testmodule; found with a wildcard prefix.dotnet sitecore itemres create -o TestPackage -i *Test*: Creates the package and includes only theProject.Content.TestandProject.Content.Test1modules; found with surrounding wildcards.dotnet sitecore itemres create -o TestPackage -i Project*: Creates package and includes theProject.Content,Project.Content.Test, andProject.Content.Test1modules; found with a wildcard suffix.dotnet sitecore itemres create -o TestPackage -e Project.Content.Test: Creates package and includes only theProject.ContentandProject.Content.Test1modules, excluding theProject.Content.Testmodule.dotnet sitecore itemres create -o TestPackage -e Project.Content.Test, Project.Content: Creates package and includes only theProject.Content.Test1module, excluding theProject.ContentandProject.Content.Testmodules.dotnet sitecore itemres create -o TestPackage -e *Test: Creates package and includes only theProject.ContentandProject.Content.Test1modules, excluding theProject.Content.Testmodule with a wildcard prefix.dotnet sitecore itemres create -o TestPackage -e *Test*: Creates package and includes only theProject.Contentmodule; excluding theProject.Content.TestandProject.Content.Test1modules with surrounding wildcards.dotnet sitecore itemres create -o TestPackage -e Project*: Creates package and excludes theProject.Content,Project.Content.TestandProject.Content.Test1modules with wildcard suffix.dotnet sitecore itemres create -o TestPackage -i Project* -e Project.Content.Test: Creates package and includes theProject.ContentandProject.Content.Test1modules with a wildcard suffix and excludes theProject.Content.Testmodule.dotnet sitecore itemres create -o TestPackage -i Project.Content.Test -e Project.Content.Test: Does not create the package and returns with the following message:
- Attempt to create
TestPackagefrom thesamplesfolder:dotnet sitecore itemres create -o TestPackage: Does not create the package and returns with the following message:
- Attempt to create
TestPackagefrom thesamplesfolder:dotnet sitecore itemres create -o TestPackage -c Prototype/: Creates the package in thesamplesfolder. dotnet sitecore itemres create -o TestPackage -v: Creates additional diagnostic and performance data, such as a root config path or count of nodes with performance, for example, 73ms (8.1ms/node).dotnet sitecore itemres create -o TestPackage -t: Creates additional diagnostic and performance data, such as FSIndex: Loaded filesystem indices in, for example, 70ms (9 metadata) or created package of 1 trees in, for example, 1983ms (9 items; 220.3ms/node).
The unicorn subcommand
The unicorn subcommand creates a new items and resources package from Unicorn serialization with the specific name format items.{databaseName}.{providedName}.dat.
You can use the following options with the unicorn subcommand:
| Option | Description |
|---|---|
-p, --path <INCLUDE> | Required. Path to unicorn serialization. |
-o, --output <OUTPUT> | Required. Package path to output (extension added if not provided). Multiple values are allowed. |
--overwrite <OVERWRITE> | Overwrite an existing package. |
-c, --config <CONFIG> | Path to the root sitecore.config directory.Default: current working directory. |
-v, --verbose | Report additional diagnostic and performance data. |
-t, --trace | Report additional diagnostic and performance data. |
-?, -h, --help | Help for the command. |
The following are examples of using the unicorn subcommand:
| Command | Result |
|---|---|
dotnet sitecore itemres unicorn -p "testItem" -o "TestPackage | Creates the items.{databaseName}.TestPackage.dat file. |
The cleanup subcommand
The cleanup subcommand cleans up database items in .dat files if the item data in both entries are equal.
This command triggers a full cache cleanup, and it can cause performance degradation. It should be executed during a maintenance window.
You can use the following options with the cleanup subcommand:
| Option | Description |
|---|---|
-f, --force | Force items cleanup without field comparison. Available from version 5.1.28. |
-w, --what-if | Simulate items cleanup without deleting items. Available from version 5.1.28. Tip This option can be used to determine whether an item would be overridden, and to identify its storage location. |
-p, --path | Sitecore Item path or GUID to cleanup. Required for Sitecore 10.3 if using the --force or --what-if options. |
-r, --recurse | Recursively cleanup all items under the specified path. |
-c, --config <CONFIG> | The path to the sitecore.json configuration file.Default: cwd. |
-n, --environment-name <ENVIRONMENT_NAME> | Named Sitecore environment to use. Default: 'default'. |
-v, --verbose | Report additional diagnostic and performance data. |
-t, --trace | Report additional diagnostic and performance data. |
-?, -h, --help | Help for the command. |
The following table shows an example of using the cleanup subcommand:
- Command: Result
dotnet sitecore itemres cleanup: Output:
dotnet sitecore itemres cleanup --force: Output:
dotnet sitecore itemres cleanup --what-if: Output:
dotnet sitecore itemres cleanup --path /sitecore/content/ItemResCleanUpContent --force: Output: