mpup

meta driver script for ports(8)


Description

If you are using CRUX, maybe sometimes you want to install an individual port from a collection, but you do not want to checkout all the entire collection. Just you can download the port to a 'local directory' and then add a prtdir to your prt-get.conf file. This should be enough, but unfortunately every time you want to update the port you couldn't use 'ports -u', and you should update this 'local directory' manually, and that's for what I wrote this tool.
mpup it's just a driver script for ports(8) that uses a list of httpup/rsync commands to synchronize individual ports as if it were a real repository.

Installation

You can find released sources here: mpup

Usage

First of all, enable the meta collection for ports(8)
# mv /etc/ports/meta.mpup.inactive /etc/ports/meta.mpup
Now add every port you want from portdb collections to the list file (by default: /etc/mpup.lst). For that, you should browse CRUX's portdb and use the download command returned by portdb.
For example, I like to have mupdf from jue's collection, so I should do:
# echo 'httpup sync http://jue.li/crux/ports/#mupdf mupdf' >> /etc/mpup.lst
Then to update the meta collection just do:
# ports -u meta
Updating collection meta
 Checkout: mupdf/
 Checkout: mupdf/.footprint
 Checkout: mupdf/.md5sum
 Checkout: mupdf/Pkgfile
Finished successfully
You should repeat these steps for every port you want.
In addition, if you want to remove a port, just delete the line from the list.
For example, I removed mupdf from my /etc/mpup.lst:
# ports -u meta
Updating collection meta
 Delete: mupdf/.footprint
 Delete: mupdf/.md5sum
 Delete: mupdf/Pkgfile
 Delete: mupdf/
Finished successfully
Note that you will noticed when files are updated/deleted/added by the maintainer of a port:
# ports -u meta
Updating collection meta
 Delete: mupdf/foo.diff
 Edit: mupdf/.md5sum
 Edit: mupdf/Pkgfile
 Checkout: mupdf/README
Finished successfully

Bugs and reports

Please contact to me:
sepen @ crux.nu