cpliakas / manifest-publisher
A command line tool that builds and publishes a herrera-io/php-phar-update manifest.json file
Requires
- php: >=5.4.0
- cpliakas/git-wrapper: ~1.0
- doctrine/cache: ~1.0
- herrera-io/phar-update: ~1.0
- symfony/console: ~2.0
- symfony/filesystem: ~2.0
Requires (Dev)
- pdepend/pdepend: ~1.0
- phploc/phploc: ~2.0
- phpmd/phpmd: ~1.0
- phpunit/phpunit: ~3.0
- scrutinizer/ocular: ~1.0
- sebastian/phpcpd: ~2.0
This package is auto-updated.
Last update: 2024-09-25 13:28:25 UTC
README
Want to implement and sustain a self-update capability in your phar that is similar to Composer's self-update command?
Manifest Publisher is a CLI tool that builds on top of the Box
and Phar Update projects in
order to make it easy to implement and sustain a self-update capability in your
phar. From a technical standpoint, it automatically generates and publishes the
manifest.json
file used by the Phar Update
library to determine when an update is available for your application. The
manifest.json
file can be published to various targets, usually GitHub Pages.
Background
Distributing a CLI application as a phar is surprisingly simple thanks to the
excellent work of Kevin Herrera on the Box
project. He even took it a step further and made it trivial to implement
a self-update capability similar to Composer's php composer.phar self-update
command so that your users can easily keep the application up to date. Refer to
the Distributing a PHP CLI app with ease
blog post by Matthieu Moquet for a detailed
walkthrough of the Phar Update
tool. This project picks up where the blog post leaves off and provides a more
robust tool that automatically generates and publishes the manifest.json
file
to various targets.
Installation
Download the manifest.phar
file from https://github.com/cpliakas/manifest-publisher/releases
via the browser, or download the latest stable version via the command line:
curl -O http://www.chrispliakas.com/manifest-publisher/download/latest/manifest.phar
Usage
Generate the manifest.json
for the vendor/repository
project and publish it
to GitHub Pages.
php manifest.phar publish:gh-pages vendor/repository
Update the manifest.phar
application to the latest stable version (Yes, this
project drinks its own champagne).
php manifest.phar self-update
Assumptions
- You are acting on a repository hosted on GitHub that you have push access to
- A
box.json
file is present in the project's root directory - The
gh-pages
branch has been set up according to GitHub's documentation - The phar is distributed via GitHub Releases with tag names exactly matching the corresponding VCS tags
Gotchas
- Ensure the
vendor/herrera-io/phar-update/res/schema.json
is included in box.json - Manifest Publisher currently does not work with private Github repos