- fix empty repository check; bash lazily evaluates wildcards, can't use
[myplc.git] / plc.d / packages
1 #!/bin/bash
2 #
3 # priority: 1200
4 #
5 # Update node package repository metadata and sign packages
6 #
7 # Mark Huang <mlhuang@cs.princeton.edu>
8 # Copyright (C) 2006 The Trustees of Princeton University
9 #
10 # $Id: packages,v 1.1 2006/05/18 17:36:39 mlhuang Exp $
11 #
12
13 # Source function library and configuration
14 . /etc/plc.d/functions
15 . /etc/planetlab/plc_config
16
17 case "$1" in
18     start)
19         MESSAGE=$"Signing node packages"
20         dialog "$MESSAGE"
21
22         shopt -s nullglob
23         for repository in /var/www/html/install-rpms/* ; do
24             # Sign all RPMS. setsid detaches rpm from the terminal,
25             # allowing the (hopefully blank) GPG password to be
26             # entered from stdin instead of /dev/tty.
27             packages=
28             for package in $repository/*.rpm ; do
29                 packages="$packages $package"
30             done
31             if [ -n "$packages" ] ; then
32                 echo | setsid rpm \
33                     --define "_signature gpg" \
34                     --define "_gpg_path /etc/planetlab" \
35                     --define "_gpg_name $PLC_MAIL_SUPPORT_ADDRESS" \
36                     --resign $packages
37                 check
38             fi
39
40             # Update yum metadata. createrepo sometimes leaves behind
41             # an .olddata file accidentally.
42             rm -rf $repository/.olddata
43             yum-arch $repository
44             check
45             createrepo -g yumgroups.xml $repository
46             check
47         done
48
49         result "$MESSAGE"
50         ;;
51 esac
52
53 exit $ERRORS