Making ilenia update local repositories

After about two years I felt the time to add a new feature to ilenia was came. On every systems were I’ve installed CRUX (or CRUX PPC) on I use local repositories for storing ports written by me for that system or ports selected by other repositories (“contrib” for example), while there is an automatic system to update harmlessly ports written by me it’s possible to update the other ones by downloading them from their own repositories.

The scenario likes the one described for the “Mult” repository driver written by sepen (http://crux.nu/Wiki/Mult), but I think it’s needed to add a new kind of repository while we can just build a system to update local repositories.

Of course local repositories should get updated together with other ones, so the tool (for my systems) that should update local repositories is ilenia and I made ilenia update local repositories.

When updating a local repository, ilenia looks for a shell script in the repository root called “.updater.sh”, if that file exists ilenia run it in the repository root.

For example on lazarus.cruxppc.org we have :

#
# /etc/ports/lazarus.local
#

PATH=/home/ports

# End Of File

And the script:

#
# /home/ports/.updater.sh
#

# ilenia
rsync -aqz cruxppc.org::ports/core/2.5/ilenia/ ilenia

# logrotate
rsync -aqz crux.nu::ports/crux-2.5/contrib/logrotate/ logrotate

# php-gd
rsync -aqz crux.nu::ports/crux-2.5/contrib/php-gd/ php-gd

# End Of File

To use the new feature you can patch ilenia-3.4 with ilenia-3.4.diff that has also some early bugfixes already released.

Probably I should roll up a new release …