rendered paste body#!/usr/bin/expect
#
# Mon Nov 27 2006 OMITTED ORIG. AUTHOR - 0.5
#
# Verify that expect is current.
exp_version -exit 5.0
# Script version.
set version 0.5
set rc 0
set test 0
set timeout 120
# Guard against any user interrupts.
trap exit SIGINT
# Usage function.
proc usage {} {
send_user "Decription
This Tcl/Expect script will GPG sign the specified package.
Usage
extras-signer.ex \[-h\] \[-V\] <package_to_be_signed>
Flags
-h Displays this help message
-V Displays version information
-t Test to see if package actually exist\n"
exit
}
# Capture list of package names passed in.
if {$argc == 0} {
usage
} else {
while { $argc } {
set option [lindex $argv 0]
switch -- $option \
"-h" {
usage
} "-V" {
send_user "$version\n"
exit
} "-t" {
set test [lindex $argv 0]
send_user "Test mode has been enabled.\n"
set argv [lrange $argv 1 end]
incr argc -1
} default {
set pkg [lindex $argv 0]
# Sign this package if it exists.
if [file exists $pkg] {
if { $test == 0 } {
send_user "\n\n"
set pid [spawn rpm --resign --with sig_main $pkg]
expect {
-re "(E|e)nter (P|p)ass (P|p)hrase:" {
send "\r\n"
expect {
"failed" {
send_user "extras-push: extras-signer.ex: ERROR: spawn rpm --resign ... failed.\n"
incr rc 16
exec kill $pid
expect eof break
}
timeout {
send_user "extras-push: extras-signer.ex: TIMEOUT SIGNING: spawn rpm --resign ... failed.\n"
incr rc 32
exec kill $pid
expect eof break
}
}
}
timeout {
send_user "extras-push: extras-signer.ex: TIMEOUT PASSWORD: spawn rpm --resign ... failed.\n"
incr rc 8
exec kill $pid
expect eof break
}
}
} else {
send_user "extras-push: extras-signer.ex: FOUND: $pkg\n"
}
} else {
send_user "extras-push: extras-signer.ex: NOT FOUND: $pkg\n"
incr rc +1
}
set argv [lrange $argv 1 end]
incr argc -1
}
}
}
exit $rc