002bebd4945e81ca7516f1df7d5c1383f2d4515b
[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.3 2006/06/23 20:29:22 mlhuang Exp $
11 #
12
13 # Source function library and configuration
14 . /etc/plc.d/functions
15 . /etc/planetlab/plc_config
16
17 # Be verbose
18 set -x
19
20 case "$1" in
21     start)
22         MESSAGE=$"Signing node packages"
23         dialog "$MESSAGE"
24
25         shopt -s nullglob
26         for repository in /var/www/html/install-rpms/* ; do
27             # Sign all RPMS. setsid detaches rpm from the terminal,
28             # allowing the (hopefully blank) GPG password to be
29             # entered from stdin instead of /dev/tty.
30             packages=
31             for package in $repository/*.rpm ; do
32                 packages="$packages $package"
33             done
34             if [ -n "$packages" ] ; then
35                 echo | setsid rpm \
36                     --define "_signature gpg" \
37                     --define "_gpg_path /etc/planetlab" \
38                     --define "_gpg_name $PLC_MAIL_SUPPORT_ADDRESS" \
39                     --resign $packages
40                 check
41             fi
42
43             # Update yum metadata. yum-arch createrepo sometimes leaves behind
44             # .oldheaders and .olddata directories accidentally.
45             rm -rf $repository/{.oldheaders,.olddata}
46             yum-arch $repository
47             check
48             createrepo -g yumgroups.xml $repository
49             check
50         done
51
52         result "$MESSAGE"
53         ;;
54 esac
55
56 exit $ERRORS