Complementary tool to Satis for updating the satis.json "require" key from the project composer.json.
This is particularly useful if you are mirroring for git repositories and package zip files (dist files).
If you use in satis.json ``"require-all": true`, you will have all versions of all packages in the repositories you defined which can take a lot of disk space
OR
You can choose to manually maintain the "require" key which can be time-consuming if you have a lot of packages.
build
<composer> Path to the project composer.json file
<satis> Path to the satis.json configuration file
[-rdd|--require-dev-dependencies REQUIRE-DEV-DEPENDENCIES] Sets the "require-dev-dependencies" key
[-rd|--require-dependencies REQUIRE-DEPENDENCIES] Sets the "require-dependencies" key
[-rc|--add-requirements] Add the requirements from the project composer.json
[-drc|--add-dev-requirements] Add the dev requirements from the project composer.json
[-rr|--reset-requirements] Will reset (empty) the satis requirements (require key) before adding the requirements of the composer.json
Given
satis.json
{
"name": "My Repository",
"homepage": "http://localhost:7777",
"repositories": [
{ "type": "vcs", "url": "https://github.com/mycompany/privaterepo" },
],
"require": {
}
}
and
composer.json
{
"name": "mycompany/mycompany-project",
"require": {
"mycompany/privaterepo": "^1.3"
},
"repositories": [
{
"packagist": false
},
{
"type": "composer",
"url": "http://localhost:7777/"
}
]
}
and Composer Satis Builder is installed:
php composer.phar create-project aoe/composer-satis-builder --stability=dev
After running
php composer-satis-builder/bin/composer-satis-builder build composer.json satis.json --reset-requirements --add-requirements
satis.json will look like:
{
"name": "My Repository",
"homepage": "http://localhost:7777",
"repositories": [
{ "type": "vcs", "url": "https://github.com/mycompany/privaterepo" },
],
"require": {
"mycompany/privaterepo": "^1.3"
},
}
Now build Satis as before:
php bin/satis build satis.json web/
Composer Satis Builder is licensed under the MIT License - see the LICENSE file for details