1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/bin/sh -x
# Vitaly Lipatov (c) 2005
# TODO: DONER is not set :(
# in - request letter
# out - no
# 24.09.05 fixed file attaching
export EMAIL="Vitaly Lipatov <lav@etersoft.ru>"
export LANG=ru_RU.KOI8-R
export RPMDIR=$HOME/RPM
DONER=""
function prepare_mail()
{
formail -r -k -t -A"X-Loop: lav@etersoft.ru"
if [ -z "$PACKAGE" ] ; then
cat <<EOF
Please fill request letter with one line:
spec package_name
or
spec full_name_of_package_file.src.rpm
or
nosrc name/fullname for nosrc.rpm retrieve
--
Your spec bash robot from Sisyphus repository
EOF
else
cat <<EOF
Request accepted for package(s) '$PACKAGE'
and will send to '${ASKER}' in next mail.
EOF
cd "$upload" || exit 1
for i in $PACKAGE ; do
echo "Package: $i"
rpmgp -n $i
cat ${i}* | rpm2cpio | cpio -i "*.spec"
if [ -n "${PACKAGESRC}" ] ; then
rpm -i ${i/\.rpm/}*.rpm
for n in $RPMDIR/SPECS/*.spec ; do
rpmbuild -bs --nosource '0' --nodeps $n
done
fi
done
cd -
fi
export DONER
}
upload=`mktemp -d $HOME/tmp/getspec.XXX`
cat > $HOME/getspec.ask
PACKAGE=`cat $HOME/getspec.ask | grep "^spec " | sed -e "s|^spec ||g"`
PACKAGESRC=`cat $HOME/getspec.ask | grep "^nosrc " | sed -e "s|^nosrc ||g"`
test -n "$PACKAGESRC" && PACKAGE=$PACKAGESRC
ASKER=`cat $HOME/getspec.ask | grep "^From: " | sed -e "s|^From: ||g"`
cat $HOME/getspec.ask | prepare_mail | mutt -H -
# -s "Answer to spec request from Sisyphus"
#echo $DONER $ASKER $PACKAGE
if [ -n "$PACKAGE" ] ; then
LF=""
for i in $upload/*.spec ; do
test -f "$i" && LF="$LF -a $i"
done
test -z "$PACKAGESRC" && test -n "$LF" && mutt "$ASKER" -s "Requested spec for $PACKAGE" $LF
fi
if [ -n "$PACKAGESRC" ] ; then
LF=""
# TODO: races
for i in $RPMDIR/SRPMS/*.nosrc.rpm ; do
test -f "$i" && LF="$LF -a $i"
done
test -n "$LF" && mutt "$ASKER" -s "Requested nosrc.rpm for $PACKAGE" $LF
fi
echo "`date` asked $PACKAGE from $ASKER, sent '$LF'" >>getspec.log
#rm -rf "$upload"
rm -rf "$RPMDIR/SRPMS/"
rm -rf "$RPMDIR/SOURCES/"
rm -rf "$RPMDIR/SPECS/"