multi-target
xpm provides a little convenience over standard fpm by creating multiple package targets at once.
Normally you'd invoke it repeatedly or in a shell loop:
fpm -s dir -t deb ...
fpm -s dir -t rpm ...
fpm -s dir -t ipk ...
But you can as well compact that into:
xpm -s dir -t deb,rpm,ipk ...
Notably that's only suitable for plain application packages. Distro-targeted packages with specific e.g. --after-install scripts may better be created individually.
Albeit you can often combine non-overlapping --deb.. and --rpm.. flags in one call:
xpm -s dir -t deb,rpm --deb-sign KEY --rpm-sign ...
It also depends on packaging plugins if the fpm build environment is left in a clean enough state. Some targets (composer, phar) may not yet be suitable for multi-target building.
Targets can also be delimited with , ␣ ; + or cominations thereof for readability:
xpm -s dir -t deb+rpm+exe
xpm -s dir -t "deb; rpm; exe"
Likewise it's possible to just list the -t flag multiple times:
xpm -s dir -t deb -t rpm -t exe
implementation
Internally it's a trivial loop to convert() from one input to different fpm output plugins.
planning
It's slightly more work, but it might also be useful to permit source transformation lists later -s dir,zip,deb. Which would allow for "matroska" packages. (The composer plugin currently does this manually for phar-in-deb/rpm packing.)