1468 lines
74 KiB
Bash
Executable File
1468 lines
74 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# webbuild cgi script
|
|
# Copyright (c) 2012 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
|
#
|
|
. /etc/sysconfig/autoport
|
|
. /usr/share/autodist/webbuild-functions
|
|
|
|
# register all GET and POST variables
|
|
cgi_getvars BOTH ALL
|
|
|
|
#[ "$PACKAGE" ] && PACKAGEENCODED=`cgi_encodevar "$PACKAGE"` || PACKAGEENCODED=
|
|
[ "$PACKAGE" ] && PACKAGEENCODED=`cgi_encodevar "$PACKAGE"` || PACKAGEENCODED=
|
|
|
|
#cgi_getvars POST
|
|
if [ "$REQUEST" != "refresh" ]; then
|
|
# echo "`date` - $QUERY_STRING_POST" >> $LOG
|
|
echo "`date` - USER=$USER&REQUEST=$REQUEST&ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGE&MAINTAINERMODE=$MAINTAINERMODE" >> $LOG
|
|
fi
|
|
|
|
[ "$HOST" ] || HOST=0
|
|
[ "$AS_HOST" ] || AS_HOST=0
|
|
|
|
[ "$AS_HOST" -a "$HOST" != "0" ] && HOST_ADD="&HOST=$HOST"
|
|
|
|
if [ "$AS_HOST" = "0" ]; then
|
|
echo -e "Content-type: text/xml\nPragma: no-cache\n"
|
|
echo -n "<webbuild>"
|
|
else
|
|
echo -e "Content-type: text/html; charset=UTF-8\n"
|
|
fi
|
|
|
|
# SECURITY
|
|
USER_ENABLED=
|
|
USER_ADMIN=
|
|
USER_CANMAINTAIN=
|
|
USER_CANSENDMESSAGES=
|
|
USER=${USER/.*\/}
|
|
if [ "$SECRET" -a "$USER" ]; then
|
|
if [ -r "$WEBBUILD_STATEDIR/users/$USER.conf" ]; then
|
|
. $WEBBUILD_STATEDIR/users/$USER.conf
|
|
fi
|
|
if [ "$USER_ENABLED" ]; then
|
|
USER_ENABLED=
|
|
if [ "$SECRET" = "$USER_SECRET" ]; then
|
|
USER_ENABLED=1
|
|
elif [ ! "$SECRET" ]; then
|
|
USER_ENABLED=
|
|
elif [ "$USER_SECRET" ]; then
|
|
echo -n "<environments> </environments>"
|
|
echo -n "<speccreate> </speccreate>"
|
|
echo -n "<specedit> </specedit>"
|
|
echo -n "<repositories> </repositories>"
|
|
echo -n "<packages> </packages>"
|
|
echo -n "<editcontrols> </editcontrols>"
|
|
echo -n "<editor> </editor>"
|
|
echo -n "<output>'$SECRET'='$USER_SECRET' Unauthorized! If this happened after you changed your password in openmamba website please ask the maintainer to be re-enabled to use this service. Thank you."
|
|
echo -n "</output>"
|
|
echo -n "<operationpanel> </operationpanel>"
|
|
echo -n "</webbuild>"
|
|
exit
|
|
elif [ "$REQUEST" = "password" ]; then
|
|
/usr/libexec/webbuild-checkpassword "$PASSWORD" "$SECRET" 2>/dev/null
|
|
if [ $? -eq 0 ]; then
|
|
tmpfile=`mktemp`
|
|
cat $WEBBUILD_STATEDIR/users/$USER.conf > $tmpfile
|
|
echo "USER_SECRET='$SECRET'" >> $tmpfile
|
|
USER_ENABLED=1
|
|
$SUDO_WRAPPER 0 local "" "mv $tmpfile $WEBBUILD_STATEDIR/users/$USER.conf"
|
|
else
|
|
USER_ENABLED=
|
|
fi
|
|
else
|
|
# no "$USER_SECRET" set; require password
|
|
echo -n "<output><![CDATA[Please enter your password: <input type=password id=password>"
|
|
echo -n " <input type=button value=\"Submit\" onClick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "REQUEST=password&PASSWORD=\"+encodeURIComponent(getElementById('password').value));>"
|
|
echo -n "]]></output>"
|
|
echo -n "<environments> </environments>"
|
|
echo -n "<speccreate> </speccreate>"
|
|
echo -n "<specedit> </specedit>"
|
|
echo -n "<repositories> </repositories>"
|
|
echo -n "<packages> </packages>"
|
|
echo -n "<editcontrols> </editcontrols>"
|
|
echo -n "<editor> </editor>"
|
|
echo -n "<operationpanel> </operationpanel>"
|
|
echo -n "</webbuild>"
|
|
exit
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if [ "$USER_ENABLED" != "1" ]; then
|
|
echo -n "<environments> </environments>"
|
|
echo -n "<speccreate> </speccreate>"
|
|
echo -n "<specedit> </specedit>"
|
|
echo -n "<repositories> </repositories>"
|
|
echo -n "<packages> </packages>"
|
|
echo -n "<editcontrols> </editcontrols>"
|
|
echo -n "<editor> </editor>"
|
|
if [ "$USER" -a "$SECRET" ]; then
|
|
if [ "$REQUEST" = "enablerequest" ]; then
|
|
echo "`date` - USER=$USER USER_EMAIL=$USER_EMAIL REQUEST=$REQUEST SECRET=$SECRET" >> $WEBBUILD_STATEDIR/requests_log
|
|
echo -n "<output>Your request has been submitted. Please wait for approval and retry later.</output>"
|
|
elif [ "$REQUEST" = "password" ]; then
|
|
echo -n "<output>Invalid password. Please reload and retry or ask the maintainer in case of problems.</output>"
|
|
elif [ "`grep \" USER=$USER \" $WEBBUILD_STATEDIR/requests_log`" ]; then
|
|
echo -n "<output>Your request is pending for approval. Please try again later or ask the maintainer in case of problems.</output>"
|
|
else
|
|
echo -n "<output><![CDATA[Your account is not enabled to use this service!"
|
|
echo -n " <input type=button value=\"Please, enable my account to use this service\" onClick=javascript:"
|
|
echo -n "ajax_getvalues(\"REQUEST=enablerequest\");>"
|
|
echo -n "]]></output>"
|
|
fi
|
|
# else
|
|
# echo -n "<output>Unauthorized!</output>"
|
|
fi
|
|
echo -n "<operationpanel> </operationpanel>"
|
|
# echo -n "</webbuild>"
|
|
# exit
|
|
fi
|
|
|
|
if [ -e $WEBBUILD_STATEDIR/webbuild.state ]; then
|
|
. $WEBBUILD_STATEDIR/users/webbuild.state
|
|
else
|
|
touch $WEBBUILD_STATEDIR/users/webbuild.state
|
|
fi
|
|
|
|
if [ "$USER_ADMIN" -a "$FAKEUSERSWITCH" != "" ]; then
|
|
if [ "$FAKEUSERSWITCH" = "_disabled_" ]; then
|
|
set_user_state_var STATE_FAKEUSER
|
|
FAKEUSER=
|
|
else
|
|
set_user_state_var STATE_FAKEUSER $FAKEUSERSWITCH
|
|
fi
|
|
fi
|
|
|
|
if [ "$USER" -a "$USER_ENABLED" ]; then
|
|
# set user state changes
|
|
if [ "$ADVANCEDCONTROLSSWITCH" != "" ]; then
|
|
if [ "$ADVANCEDCONTROLSSWITCH" = "true" ]; then
|
|
set_user_state_var STATE_ADVANCEDCONTROLS 1
|
|
else
|
|
set_user_state_var STATE_ADVANCEDCONTROLS
|
|
fi
|
|
fi
|
|
if [ "$PRIVACYMODESWITCH" != "" ]; then
|
|
if [ "$PRIVACYMODESWITCH" = "true" ]; then
|
|
set_user_state_var STATE_PRIVACYMODE 1
|
|
else
|
|
set_user_state_var STATE_PRIVACYMODE
|
|
fi
|
|
fi
|
|
|
|
# read user state file
|
|
[ -e $WEBBUILD_STATEDIR/users/$USER.state ] && . $WEBBUILD_STATEDIR/users/$USER.state
|
|
|
|
if [ "$USER_ADMIN" -a "$STATE_FAKEUSER" != "" ]; then
|
|
USER=$STATE_FAKEUSER
|
|
USER_ENABLED=
|
|
USER_ADMIN=
|
|
USER_CANMAINTAIN=
|
|
USER_CANINSTALL=
|
|
USER_ALLENVIRONMENTS=
|
|
USER_ALLREPOSITORIES=
|
|
[ -e $WEBBUILD_STATEDIR/users/$USER.conf ] && . $WEBBUILD_STATEDIR/users/$USER.conf
|
|
STATE_ADVANCEDCONTROLS=
|
|
[ -e $WEBBUILD_STATEDIR/users/$USER.state ] && . $WEBBUILD_STATEDIR/users/$USER.state
|
|
fi
|
|
fi
|
|
|
|
#
|
|
# Public requests
|
|
#
|
|
if [ "$REQUEST" = "refresh" -o ! "$USER" ]; then
|
|
# social box
|
|
echo -n "<socialbox><![CDATA["
|
|
echo -n "<div class=\"socialbox\"><div class=\"scroll-pane\">"
|
|
count=0
|
|
[ -e "$WEBBUILD_STATEDIR/social_log" ] && tail -n 100 $WEBBUILD_STATEDIR/social_log | tac | while read line; do
|
|
STYPE=
|
|
SPRIVACY=
|
|
SUSER=
|
|
eval $line
|
|
[ "$SUSER" = "$USER" -a "$STYPE" != "broadcastmessage" ] && continue
|
|
if [ "$SPRIVACY" -a ! "$USER" ]; then
|
|
USER_GRAVATAR=
|
|
else
|
|
USER_GRAVATAR=`echo -n $SEMAIL | md5sum | sed "s| .*||"`
|
|
fi
|
|
echo -n "<div id=\"sociallog-$SID\" style=\"height:auto;\"><div style=\"vertical-align:middle;position:relative;float:left;height:24px;width:24px;\">"
|
|
echo -n "<img src=\"http://www.gravatar.com/avatar/$USER_GRAVATAR?s=24&d='http://www.gravatar.com/avatar/ad516503a11cd5ca435acc9bb6523536?s=22'\" /></div>"
|
|
DATENOW=`date +%s`
|
|
DAYSAGO=`expr \( $DATENOW - $STIME \) / 86400`
|
|
HOURAGO=`expr \( $DATENOW - $STIME \) / 3600 % 24`
|
|
MINAGO=`expr \( $DATENOW - $STIME \) / 60 % 60`
|
|
SECAGO=`expr \( $DATENOW - $STIME \) % 60`
|
|
TIMEAGO="${SECAGO}s"
|
|
if [ $DAYSAGO -gt 1 ]; then
|
|
TIMEAGO="$DAYSAGO days"
|
|
elif [ $DAYSAGO -eq 1 ]; then
|
|
TIMEAGO="1 day ${HOURAGO} hours"
|
|
elif [ $HOURAGO -gt 1 ]; then
|
|
TIMEAGO="${HOURAGO} hours"
|
|
elif [ $HOURAGO -eq 1 ]; then
|
|
TIMEAGO="1 hour ${MINAGO} min"
|
|
elif [ $MINAGO -gt 1 ]; then
|
|
TIMEAGO="${MINAGO} minutes"
|
|
elif [ $MINAGO -eq 1 ]; then
|
|
TIMEAGO="1 min ${SECAGO} seconds"
|
|
else
|
|
TIMEAGO="${SECAGO} seconds"
|
|
fi
|
|
if [ "$SPRIVACY" -a ! "$USER" ]; then
|
|
SUSER="A developer"
|
|
fi
|
|
echo -n "<div style=\"position:relative;float:right;height:auto;width:164px;\"><b>$SUSER</b> $STEXT <i>(${TIMEAGO} ago)</i></div></div><br>"
|
|
count=`expr $count + 1`
|
|
[ $count -ge 10 ] && break
|
|
echo -n "<div style=\"clear:both;\"><hr></div>"
|
|
done
|
|
echo -n "</div></div>"
|
|
echo -n "]]></socialbox>"
|
|
fi
|
|
|
|
if [ "$USER_ENABLED" != "1" ]; then
|
|
echo -n "</webbuild>"
|
|
exit
|
|
fi
|
|
|
|
#
|
|
# Enabled users requests
|
|
#
|
|
|
|
if [ "$REQUEST" = "killtree" ]; then
|
|
killline=`grep "^$KILLPID " $WEBBUILD_STATEDIR/processes`
|
|
if [ "$killline" ]; then
|
|
if [ $KILLPID -ge 1 ]; then
|
|
$SUDO_WRAPPER killtree $KILLPID
|
|
# if [ $? -eq 0 ]; then
|
|
set -- $killline
|
|
rm -f $4
|
|
sed -i "/^$KILLPID /d" $WEBBUILD_STATEDIR/processes
|
|
# else
|
|
# echo "<output>ERROR: killtree returned $?</output>"
|
|
# fi
|
|
else
|
|
echo "<output>ERROR: Invalid PID</output>"
|
|
fi
|
|
fi
|
|
echo -n "</webbuild>"
|
|
exit
|
|
fi
|
|
|
|
if [ "$REQUEST" = "refresh" ]; then
|
|
echo -n "<processes><![CDATA["
|
|
numprocess=0
|
|
while read line; do
|
|
set -- $line
|
|
RETCODE=$5
|
|
# if [ -e /proc/$1 -o $5 -lt 256 ]; then
|
|
numprocess=`expr $numprocess + 1`
|
|
cmdline=`echo $line | sed "s|$1 $2 $3 $4 $RETCODE ||"`
|
|
[ $numprocess -eq 1 ] && {
|
|
echo -n "<div align=left class=processes>"
|
|
echo -n "<b>Webbuild jobs:</b><br>"
|
|
}
|
|
echo -n "<b>$2</b> "
|
|
if [ $RETCODE -eq 256 -a -e /proc/$1 ]; then
|
|
echo -n "\"<a onClick=javascript:ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "REQUEST=showlog&LOGTYPE=processtail&PROCESSPID=$1&LOGFILE=$4\")>"
|
|
echo -n "<i>$cmdline</i></a>\" "
|
|
echo -n "<i>(running...)</i>"
|
|
else
|
|
echo -n "\"<a onClick=javascript:ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "REQUEST=showlog&LOGTYPE=processoutput&LOGFILE=$4\")>"
|
|
echo -n "<i>$cmdline</i></a>\" "
|
|
if [ $RETCODE -eq 256 ]; then
|
|
$SUDO_WRAPPER finishprocess $1 $4
|
|
RETCODE=$?
|
|
fi
|
|
if [ $RETCODE -eq 0 ]; then
|
|
echo -n "<font color=green><b>OK</b></font>"
|
|
else
|
|
echo -n "<font color=red><b>ERROR ($RETCODE)</b></font>"
|
|
fi
|
|
fi
|
|
echo -n " [<a onClick=javascript:ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "REQUEST=killtree&KILLPID=$1\")>"
|
|
if [ $RETCODE -eq 256 -a -e /proc/$1 ]; then
|
|
echo -n "kill"
|
|
else
|
|
echo -n "x"
|
|
fi
|
|
echo -n "</a>]"
|
|
echo -n "<br>"
|
|
# fi
|
|
done < $WEBBUILD_STATEDIR/processes
|
|
[ $numprocess -gt 0 ] && echo -n "</div>"
|
|
echo -n "]]></processes></webbuild>"
|
|
exit
|
|
fi
|
|
|
|
# message send request (social_log)
|
|
if [ "$REQUEST" = "message" -a "$USER" -a "$USER_CANSENDMESSAGES" ]; then
|
|
# external (autodist) social messages
|
|
[ "$MESSAGETYPE" ] || MESSAGETYPE=broadcastmessage
|
|
social_log "SUSER=$USER STYPE=$MESSAGETYPE SEMAIL=$USER_EMAIL STEXT=\"$MESSAGE\" STIME=`date +%s`"
|
|
echo "</webbuild>"
|
|
exit
|
|
fi
|
|
|
|
# repsearch request
|
|
if [ "$REQUEST" = "repsearch" ]; then
|
|
echo -n "<output><![CDATA["
|
|
echo -n "<div align=left class=output id=outputtop>"
|
|
echo -n "<pre><!-- SCROLL -->"
|
|
$SUDO_WRAPPER 0 local "" "openmamba-repository search -i $REPSEARCHTEXT"
|
|
echo -n "<!-- ENDSCROLL --></pre>"
|
|
echo "</div>]]></output></webbuild>"
|
|
exit
|
|
fi
|
|
|
|
# ENVIRONMENT select
|
|
echo -n "<environments><![CDATA["
|
|
# new session button
|
|
echo -n "<input type=button id=newsessionbutton value=\"New session\" onclick=javascript:"
|
|
echo -n "window.open(document.URL);>"
|
|
# expert mode checkbox
|
|
[ "$STATE_ADVANCEDCONTROLS" ] && CHECKED="checked=checked" || CHECKED=
|
|
echo -n " <span style=\"white-space:nowrap\">Expert:<input type=checkbox id=\"advancedcontrols\" value=\"force\" "
|
|
echo -n "onclick=javascript:ajax_getvalues(\""
|
|
echo -n "ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "MAINTAINERMODE=\"+getElementById('maintain').checked+\"&"
|
|
echo -n "ADVANCEDCONTROLSSWITCH=\"+getElementById('advancedcontrols').checked); $CHECKED>"
|
|
# privacy mode checkbox
|
|
[ "$STATE_PRIVACYMODE" ] && CHECKED="checked=checked" || CHECKED=
|
|
echo -n " <span style=\"white-space:nowrap\">Privacy:<input type=checkbox id=\"privacymode\" value=\"force\" "
|
|
echo -n "onclick=javascript:ajax_getvalues(\""
|
|
echo -n "ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "PRIVACYMODESWITCH=\"+getElementById('privacymode').checked); $CHECKED>"
|
|
echo -n "</span>"
|
|
# maintainer mode checkbox
|
|
if [ "$USER_CANMAINTAIN" ]; then
|
|
[ "$MAINTAINERMODE" = "true" ] && CHECKED="checked"
|
|
echo -n "Maintainer:<input type=checkbox id=\"maintain\" $CHECKED onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"REPOSITORY=$REPOSITORY"
|
|
echo -n "&MAINTAINERMODE=\"+getElementById('maintain').checked+\""
|
|
echo -n "&PACKAGE=$PACKAGEENCODED&ENVIRONMENT=$ENVIRONMENT&REQUEST=switchmaintainermode\");>"
|
|
fi
|
|
# switch user select
|
|
if [ "$USER_ADMIN" -o "$STATE_FAKEUSER" ]; then
|
|
echo -n " | "
|
|
echo -n " Test user: <select id=adminuser "
|
|
echo -n "onchange=javascript:ajax_getvalues(\"REQUEST=adminuser&"
|
|
echo -n "FAKEUSERSWITCH=\"+this.value);>"
|
|
echo -n "<option value=\"_disabled_\">-- disabled --</option>"
|
|
for f in $WEBBUILD_STATEDIR/users/*.conf; do
|
|
adminuser=`basename ${f/.conf}`
|
|
[ "$STATE_FAKEUSER" = "$adminuser" ] && SELECTED="selected=\"selected\"" || SELECTED=
|
|
echo -n "<option value=\"$adminuser\" $SELECTED>$adminuser</option>"
|
|
done
|
|
echo -n "</select>"
|
|
fi
|
|
if [ "$MAINTAINERMODE" != "true" ]; then
|
|
# [ "$USER_CANMAINTAIN" -o "$STATE_FAKEUSER" -o "$USER_ADMIN" ] && echo -n "<br>"
|
|
echo -n "<br>Build environment:<select id=environment "
|
|
echo -n "onchange=javascript:ajax_getvalues(\"ENVIRONMENT=\"+this.value+\"&REQUEST=changeenvironment\");>"
|
|
echo "<option value=\"\">-- Please select a build environment --</option>"
|
|
|
|
for i in `seq 0 ${#AUTOPORT_ARCH[*]}`; do
|
|
[ "${AUTOPORT_ARCH[$i]}" ] || continue
|
|
# [ "${AUTOPORT_DISABLE[$i]}" -a "${AUTOPORT_DISABLE[$i]}" != "0" ] && continue
|
|
SELECTED=
|
|
if [ "$ENVIRONMENT" ]; then
|
|
[ "$ENVIRONMENT" = "$i" ] && SELECTED="selected=\"selected\"" || SELECTED=
|
|
else
|
|
if [ "${AUTOPORT_CHROOT_USER[$i]}" = "$USER" ]; then
|
|
SELECTED="selected=\"selected\""
|
|
ENVIRONMENT=$i
|
|
fi
|
|
fi
|
|
if [ "${AUTOPORT_CHROOT_USER[$i]}" = "$USER" -o "${AUTOPORT_CHROOT_USER[$i]}" = "contrib" -o "$USER_ALLENVIRONMENTS" ]; then
|
|
if [ "${AUTOPORT_CHROOT_USER[$i]}" = "contrib" -a ! "$ENVIRONMENT" ]; then
|
|
SELECTED="selected=\"selected\""
|
|
ENVIRONMENT=$i
|
|
fi
|
|
echo -n "<option value=\"$i\" $SELECTED>"
|
|
if [ "${AUTOPORT_CHROOT_USER[$i]}" ]; then
|
|
echo -n "${AUTOPORT_CHROOT_USER[$i]} "
|
|
else
|
|
echo "autodist "
|
|
fi
|
|
if [ "${AUTOPORT_UPDATE[$i]}" ]; then
|
|
echo -n "autoupdate"
|
|
elif [ "${AUTOPORT_CHROOT[$i]}" ]; then
|
|
echo -n "chroot"
|
|
elif [ "${AUTOPORT_NATIVE[$i]}" ]; then
|
|
echo -n "native"
|
|
elif [ "${AUTOPORT_CROSS[$i]}" ]; then
|
|
echo -n "cross"
|
|
else
|
|
echo -n "unknown type"
|
|
fi
|
|
echo -n " for ${AUTOPORT_ARCH[$i]} (${AUTOPORT_BASE_REPOSITORY[$i]} based)"
|
|
echo -n "</option>"
|
|
fi
|
|
done
|
|
echo -n "</select>"
|
|
fi
|
|
echo -n "]]></environments>"
|
|
|
|
if [ ! "$ENVIRONMENT" ]; then
|
|
ENVIRONMENT=$DEFAULT_ENVIRONMENT
|
|
fi
|
|
|
|
if [ "${AUTOPORT_CHROOT[$ENVIRONMENT]}" ]; then
|
|
WORKINGROOT="/var/autoport/${AUTOPORT_CHROOT[$ENVIRONMENT]}/"
|
|
WORKINGHOME="/var/autoport/${AUTOPORT_CHROOT[$ENVIRONMENT]}/usr/src/"
|
|
BUILDLOGDIR="/var/autoport/${AUTOPORT_CHROOT[$ENVIRONMENT]}/home/${AUTOPORT_CHROOT_USER[$ENVIRONMENT]}/.autodist/log/"
|
|
AUTOPORTLOGDIR="/var/autoport/${AUTOPORT_CHROOT[$ENVIRONMENT]}/home/${AUTOPORT_CHROOT_USER[$ENVIRONMENT]}/.autoport/${AUTOPORT_ARCH[$ENVIRONMENT]}/"
|
|
elif [ "${AUTOPORT_NATIVE[$ENVIRONMENT]}" ]; then
|
|
WORKINGROOT="/"
|
|
WORKINGHOME=`getent passwd ${AUTOPORT_CHROOT_USER[$ENVIRONMENT]} | cut -d: -f6`
|
|
BUILDLOGDIR="/home/${AUTOPORT_CHROOT_USER[$ENVIRONMENT]}/.autodist/log/"
|
|
AUTOPORTLOGDIR="/home/${AUTOPORT_CHROOT_USER[$ENVIRONMENT]}/.autoport/${AUTOPORT_ARCH[$ENVIRONMENT]}/"
|
|
else
|
|
WORKINGROOT="/"
|
|
WORKINGHOME="/var/autodist/"
|
|
BUILDLOGDIR="/var/autodist/log/"
|
|
AUTOPORTLOGDIR="/var/autodist/.autoport/${AUTOPORT_ARCH[$ENVIRONMENT]}/"
|
|
fi
|
|
|
|
if [ "$HOST_IS_X86_64" -a "${AUTOPORT_ARCH[$ENVIRONMENT]}" != "x86_64" ]; then
|
|
SUDO_WRAPPER="linux32 $SUDO_WRAPPER"
|
|
fi
|
|
|
|
# show log
|
|
if [ "$REQUEST" = "showlog" ]; then
|
|
echo -n "<output><![CDATA["
|
|
if [ "$LOGTYPE" = "processoutput" -o "$LOGTYPE" = "processtail" ]; then
|
|
LOGFILES=$LOGFILE
|
|
else
|
|
LOGFILE=$LOGTYPE
|
|
if [ "$LOGSTATUSOK" = "true" ]; then
|
|
LOGFILE=$LOGFILE/ok
|
|
else
|
|
LOGFILE=$LOGFILE/failed
|
|
fi
|
|
LOGFILE1=$LOGFILE/$PACKAGE.${AUTOPORT_ARCH[$ENVIRONMENT]}
|
|
LOGFILE2=$LOGFILE/${PACKAGE}__*.${AUTOPORT_ARCH[$ENVIRONMENT]}
|
|
LOGFILE3=$LOGFILE/*_${PACKAGE}__*.${AUTOPORT_ARCH[$ENVIRONMENT]}
|
|
LOGFILE4=$LOGFILE/*_${PACKAGE}.${AUTOPORT_ARCH[$ENVIRONMENT]}
|
|
LOGFILES="$BUILDLOGDIR/$LOGFILE1 $BUILDLOGDIR/$LOGFILE2 $BUILDLOGDIR/$LOGFILE3 $BUILDLOGDIR/$LOGFILE4"
|
|
fi
|
|
echo "<div align=left class=output id=outputbottom>"
|
|
for f in $LOGFILES; do
|
|
[ -r $f ] || continue
|
|
echo -n "<b>`basename $f` (`stat -c %y $f`)</b><pre>"
|
|
if [ "$LOGTYPE" = "processtail" ]; then
|
|
echo -n "<!-- SCROLL -->"
|
|
tail -n +0 -f $f --pid $PROCESSPID | sed "s|<|\<|g"
|
|
echo -n "<!-- ENDSCROLL -->"
|
|
else
|
|
cat $f | sed "s|<|\<|g"
|
|
fi
|
|
echo -n "</pre>"
|
|
done
|
|
echo -n "</div>]]></output>"
|
|
echo -n "</webbuild>"
|
|
exit
|
|
fi
|
|
|
|
[ "$PACKAGE" -a ! "$REQUEST" ] && REQUEST=edit
|
|
|
|
# SPECFILES select
|
|
if [ "$ENVIRONMENT" -a "$MAINTAINERMODE" != "true" ]; then
|
|
echo -n "<specedit><![CDATA["
|
|
echo -n " Edit:<select id=specfile "
|
|
echo -n "onchange=javascript:ajax_getvalues(\"REQUEST=edit&ENVIRONMENT=$ENVIRONMENT&"
|
|
echo -n "PACKAGE=\"+encodeURIComponent(this.value)+\"&REQUEST=changespec\");>"
|
|
echo -n "<option value=\"\">-- Select a .spec file --</option>"
|
|
for f in `$SUDO_WRAPPER 0 $ENVIRONMENT "" "ls *.spec"`; do
|
|
specname=${f/.spec}
|
|
[ "$PACKAGE" = "$specname" ] && SELECTED="selected=\"selected\"" || SELECTED=
|
|
echo -n "<option value=\"$specname\" $SELECTED>${specname}.spec</option>"
|
|
done
|
|
echo -n "</select>]]></specedit>"
|
|
elif [ "$MAINTAINERMODE" = "true" ]; then
|
|
echo -n "<specedit> </specedit>"
|
|
fi
|
|
|
|
# clean output when changing environment
|
|
if [ ! "$REPOSITORY" -a ! "$PACKAGE" -a ! "$REQUEST" = "repsearch" ]; then
|
|
echo -n "<editor> </editor>"
|
|
# echo -n "<editor><![CDATA[<textarea id=spectext class=editor disabled=true></textarea>]]></editor>"
|
|
# echo -n "<output><![CDATA[<div align=left class=output id=outputbottom>]]></output>"
|
|
fi
|
|
|
|
# REPOSITORIES search
|
|
if [ ! "$REPSEARCHTEXT" ]; then
|
|
echo -n "<searchbox><![CDATA["
|
|
echo -n "<div class=searchbox><input type=button id=repsearchbutton value=\"Search repositories:\" onclick=javascript:ajax_getvalues(\""
|
|
echo -n "ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "REQUEST=repsearch&REPSEARCHTEXT=\"+encodeURIComponent(getElementById('repsearchtext').value));>"
|
|
if [ "$PACKAGE" ]; then
|
|
echo -n "<input type=text id=repsearchtext value=\"${PACKAGE}-\" size=\"15\">"
|
|
else
|
|
echo -n "<input type=text id=repsearchtext value=\"\" size=\"15\">"
|
|
fi
|
|
echo -n "</div>]]></searchbox>"
|
|
fi
|
|
|
|
if [ "$MAINTAINERMODE" = "true" -o ! "${AUTOPORT_UPDATE[$ENVIRONMENT]}" ]; then
|
|
# REPOSITORIES select
|
|
if [ "$MAINTAINERMODE" = "true" -o ! "$REPOSITORY" -o "$REQUEST" = "changeenvironment" ]; then
|
|
echo -n "<repositories><![CDATA[Repository:<select id=repository "
|
|
echo -n "onchange=javascript:ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=\"+this.value+\""
|
|
if [ "$USER_CANMAINTAIN" ]; then
|
|
echo -n "&MAINTAINERMODE=\"+getElementById('maintain').checked+\""
|
|
fi
|
|
if [ ! "$MAINTAINERMODE" ]; then
|
|
echo -n "&PACKAGE=\"+encodeURIComponent(getSelectedValueById('specfile'))+\""
|
|
fi
|
|
echo -n "&REQUEST=changerepository\");>"
|
|
echo -n "<option value=\"\">-- Select a repository --</option>"
|
|
for f in `$SUDO_WRAPPER 0 local "" "/usr/sbin/openmamba-repository list"`; do
|
|
repname=`basename $f`
|
|
[ "$repname" = "$REPOSITORY" ] && SELECTED="selected=selected" || SELECTED=
|
|
echo -n "<option value=\"$repname\" $SELECTED>$repname</option>"
|
|
done
|
|
echo -n "</select>"
|
|
echo -n "]]></repositories>"
|
|
echo -n "<packages> </packages>"
|
|
echo -n "<operations> </operations>"
|
|
fi
|
|
|
|
# PACKAGES (SRPM) select
|
|
if [ "$REQUEST" = "changerepository" -o "$REQUEST" = "switchmaintainermode" -a "$MAINTAINERMODE" != "true" ]; then
|
|
echo -n "<packages><![CDATA[ SRPMS:"
|
|
echo -n "<select id=package onchange=javascript:"
|
|
echo -n "getElementById('preparebutton').disabled=0;getElementById('portbutton').disabled=0;>"
|
|
#(getElementById('package').selectedIndex);>"
|
|
echo "<option value=\"\">-- Select a SRPM package --</option>"
|
|
SRPMBUTTONDISABLED="disabled=disabled"
|
|
for f in $local_ftp/$REPOSITORY/SRPMS.base/*.src.rpm; do
|
|
[ -r $f ] || continue
|
|
pkgname=`basename $f`
|
|
pkgname=${pkgname/.src.rpm}
|
|
pkgrel=${pkgname/*-}
|
|
pkgname=${pkgname/-$pkgrel}
|
|
pkgver=${pkgname/*-}
|
|
pkgname=${pkgname/-$pkgver}
|
|
if [ "$PACKAGE" = "$pkgname" ]; then
|
|
SELECTED="selected=\"selected\"";
|
|
SRPMBUTTONDISABLED=
|
|
else
|
|
SELECTED=
|
|
fi
|
|
echo -n "<option value=\"$pkgname\" $SELECTED>${pkgname} ${pkgver}-${pkgrel}</option>"
|
|
done
|
|
echo -n "</select>"
|
|
echo -n "]]></packages>"
|
|
if [ "$MAINTAINERMODE" != "true" ]; then
|
|
echo -n "<operations><![CDATA["
|
|
echo -n "<input type=button name=prepare value=\"Unpack and edit\" id=preparebutton onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"REQUEST=prepare&REPOSITORY=\"+getSelectedValueById('repository')+\""
|
|
echo -n "&ENVIRONMENT=$ENVIRONMENT&MAINTAINERMODE=\"+getElementById('maintain').checked+\"&"
|
|
echo -n "PACKAGE=\"+encodeURIComponent(getSelectedValueById('package'))); $SRPMBUTTONDISABLED>"
|
|
if [ "${AUTOPORT_CHROOT[$ENVIRONMENT]}" ]; then
|
|
echo -n "<input type=button name=port value=\"Port\" id=portbutton onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"REQUEST=autoport&REPOSITORY=\"+getSelectedValueById('repository')+\""
|
|
echo -n "&ENVIRONMENT=$ENVIRONMENT&MAINTAINERMODE=\"+getElementById('maintain').checked+\"&"
|
|
echo -n "PACKAGE=\"+encodeURIComponent(getSelectedValueById('package'))); $SRPMBUTTONDISABLED>"
|
|
fi
|
|
echo -n "]]></operations>"
|
|
# REQUEST=changesrpm
|
|
fi
|
|
fi
|
|
|
|
# SPECFILE creation
|
|
if [ ! "${AUTOPORT_UPDATE[$ENVIRONMENT]}" -a "$MAINTAINERMODE" != "true" ]; then
|
|
echo -n "<speccreate><![CDATA["
|
|
echo -n " Start from URL:<input type=text id=speccreateurl value=\"\" size=\"55\">"
|
|
echo -n " name:<input type=text id=speccreatename value=\"\" size=\"10\">"
|
|
echo -n " type:<select id=speccreatetype>"
|
|
for t in standard gnome kde3 kde4 library perl python standard-daemon; do
|
|
echo -n "<option value=\"$t\">$t</option>"
|
|
done
|
|
echo -n "</select>"
|
|
echo -n " version:<input type=text id=speccreateversion value=\"\" size=\"6\">"
|
|
echo -n "<input type=button id=speccreatebutton value=\"Create .spec\" onclick=javascript:ajax_getvalues(\""
|
|
echo -n "REQUEST=speccreate&ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&"
|
|
echo -n "PACKAGE=\"+encodeURIComponent(getElementById('speccreatename').value)+\"&"
|
|
echo -n "SPECCREATETYPE=\"+getElementById('speccreatetype').value+\"&"
|
|
echo -n "SPECCREATEVERSION=\"+getElementById('speccreateversion').value+\"&"
|
|
echo -n "SPECCREATEURL=\"+encodeURIComponent(getElementById('speccreateurl').value));>"
|
|
echo "]]></speccreate>"
|
|
elif [ "$MAINTAINERMODE" = "true" ]; then
|
|
echo -n "<speccreate> </speccreate>"
|
|
fi
|
|
#else
|
|
# echo -n "<repositories> </repositories><packages> </packages><operations> </operations><speccreate> </speccreate> <operations></operations>"
|
|
fi
|
|
|
|
if [ "$REQUEST" = "changespec" ]; then
|
|
if [ "$PACKAGE" ]; then
|
|
REQUEST="edit";
|
|
fi
|
|
elif [ "$REQUEST" = "broadcastmessage" ]; then
|
|
BROADCASTMESSAGE=`echo $BROADCASTMESSAGE | sed "s|<|\<|g"`
|
|
social_log "SUSER=$USER STYPE=broadcastmessage SEMAIL=$USER_EMAIL STEXT=\"said:"<i>$BROADCASTMESSAGE</i>"\" STIME=`date +%s`"
|
|
REQUEST=
|
|
fi
|
|
|
|
#if [ "$MAINTAINERMODE" != "true" -a ! "$PACKAGE" ]; then
|
|
# echo "<editor> </editor>"
|
|
# echo "<editcontrols> </editcontrols>"
|
|
# echo "<operationpanel> </operationpanel>"
|
|
#fi
|
|
|
|
if [ "$SPECTEXT" ]; then
|
|
# save specfile
|
|
tmpfile=`mktemp`
|
|
echo -n $SPECTEXT | perl -MURI::Escape -e 'print uri_unescape(<>)' > $tmpfile
|
|
chmod 644 $tmpfile
|
|
$SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "cat $tmpfile > $PACKAGE.spec" $tmpfile
|
|
rm -f $tmpfile
|
|
fi
|
|
|
|
if [ "$REQUEST" = "edit" -o "$REQUEST" = "prepare" ]; then
|
|
social_log "SUSER=$USER SEMAIL=$USER_EMAIL STEXT=\"is working on <b>$PACKAGE</b>\" STIME=`date +%s`"
|
|
fi
|
|
|
|
# Here requests which update the specfile, so editor is refreshed after
|
|
if [ "$REQUEST" = "prepare" -o "$REQUEST" = "updatespec" -o "$REQUEST" = "speccreate" -o \
|
|
"$REQUEST" = "rebuildspec" -o "$REQUEST" = "renamespec" -o "$REQUEST" = "deletespec" ]; then
|
|
echo -n "<output><![CDATA[<div align=left class=output id=outputbottom>"
|
|
echo -n "<pre>"
|
|
RET=255
|
|
case $REQUEST in
|
|
"prepare") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "autospec -u $PACKAGE -a1 --server $REPOSITORY"; RET=$? ;;
|
|
"updatespec") if [ "$UPDATESSPECVERSION" -a "$REBUILDSPECCHANGELOG" ]; then
|
|
echo "ERROR: new version and changelog can't be specified together"
|
|
elif [ "$REBUILDSPECCHANGELOG" ]; then
|
|
$SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "autospec -u $PACKAGE -a4 --rebuild --changelog \"$REBUILDSPECCHANGELOG\""
|
|
elif [ "$UPDATESSPECVERSION" ]; then
|
|
$SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "autospec -u $PACKAGE -a3,4 $UPDATESPECVERSION"
|
|
else
|
|
$SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "autospec -u $PACKAGE -a2:4 $UPDATESPECVERSION"
|
|
fi
|
|
RET=$?
|
|
[ ;;
|
|
"speccreate") if [ "$SPECCREATEURL" -a "$PACKAGE" ]; then
|
|
AUTOSPEC_CMDLINE="-n $PACKAGE -o $PACKAGE.spec"
|
|
#DECODEDURL=`cgi_decodevar $SPECCREATEURL`
|
|
[ "$SPECCREATETYPE" ] && AUTOSPEC_CMDLINE="$AUTOSPEC_CMDLINE -t $SPECCREATETYPE"
|
|
[ "$SPECCREATEVERSION" ] && AUTOSPEC_CMDLINE="$AUTOSPEC_CMDLINE -v $SPECCREATEVERSION"
|
|
$SUDO_WRAPPER 0 $ENVIRONMENT "" "autospec -s \"$SPECCREATEURL\" $AUTOSPEC_CMDLINE"
|
|
RET=$?
|
|
[ $RET -eq 0 ] && social_log "SUSER=$USER SEMAIL=$USER_EMAIL STEXT=\"is working on <b>$PACKAGE</b> new package\" STIME=`date +%s`"
|
|
# --changelog \"package created by $USER from autodist webbuild interface\""
|
|
else
|
|
echo "ERROR: both source archive URL and name are needed."
|
|
RET=1
|
|
fi
|
|
;;
|
|
"renamespec") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "mv $RENAMESPECFROM.spec $PACKAGE.spec && sed -i \"s|\(Name:[[:space:]]*\).*|\1$PACKAGE|\" $PACKAGE.spec"
|
|
RET=$?
|
|
[ $RET -eq 0 ] && social_log "SUSER=$USER SEMAIL=$USER_EMAIL STEXT=\"renamed <b>$RENAMESPECFROM</b> to <b>$PACKAGE</b>\" STIME=`date +%s`"
|
|
;;
|
|
"deletespec") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "rm -f $PACKAGE.spec"
|
|
RET=$?
|
|
[ $RET -eq 0 ] && REQUEST="exit"
|
|
;;
|
|
esac
|
|
echo -n "</pre>"
|
|
if [ $RET -eq 0 ]; then
|
|
echo "Result: <font color=green><b>OK</b></font>"
|
|
else
|
|
echo "Result: <font color=red><b>ERROR ($RET)</b></font>"
|
|
fi
|
|
echo -n "</div>"
|
|
echo -n "]]></output>"
|
|
if [ "$REQUEST" = "exit" ]; then
|
|
echo -n "<editcontrols> </editcontrols>"
|
|
echo -n "<operations> </operations>"
|
|
echo -n "<editor> </editor>"
|
|
echo -n "</webbuild>"
|
|
exit
|
|
fi
|
|
[ $RET -eq 0 ] && REQUEST="edit" || REQUEST=
|
|
fi
|
|
|
|
# maintainer mode editor
|
|
if [ "$MAINTAINERMODE" = "true" ]; then
|
|
if [ ! "$REQUEST" -o "$REQUEST" = "changerepository" -o \
|
|
"$REQUEST" = "switchmaintainermode" -o "$REQUEST" = "reloadmaintainer" ]; then
|
|
echo -n "<editcontrols> </editcontrols>"
|
|
echo -n "<operations> </operations>"
|
|
if [ "$REPOSITORY" ]; then
|
|
echo -n "<editor><![CDATA["
|
|
echo -n "<div class=maintainer>"
|
|
echo -n "<b>Recent packages in $REPOSITORY:</b><br>"
|
|
cat $local_ftp/distromatic/$REPOSITORY/_recent.inc
|
|
echo -n "<br><b>Log:</b><br><pre>"
|
|
cat $local_ftp/$REPOSITORY/distromatic.log
|
|
echo -n "</pre></div>"
|
|
echo -n "<input type=button id=updatespecbutton value=\"refresh\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "MAINTAINERMODE=$MAINTAINERMODE&REQUEST=reloadmaintainer\");>"
|
|
echo -n "]]></editor>"
|
|
else
|
|
echo -n "<editor> </editor>"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# specfile editor
|
|
if [ "$REQUEST" = "edit" -o "$REQUEST" = "reloadspec" -o "$REQUEST" = "switchmaintainermode" -a "$MAINTAINERMODE" != "true" ]; then
|
|
if [ "$PACKAGE" ]; then
|
|
$SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "ls $PACKAGE.spec"
|
|
[ $? -eq 0 ] && SPECAVAILABLE=1
|
|
fi
|
|
if [ "$SPECAVAILABLE" ]; then
|
|
echo -n "<editcontrols><![CDATA["
|
|
# specfile update
|
|
echo -n "<br><input type=button id=updatespecbutton value=\"update\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "REQUEST=updatespec&UPDATESPECVERSION=\"+getElementById('updatespecversion').value+\"&"
|
|
echo -n "REBUILDSPECCHANGELOG=\"+encodeURIComponent(getElementById('rebuildspecchangelog').value)+\"&"
|
|
echo -n "SPECTEXT=\"+encodeURIComponent(editor.getValue()));>"
|
|
echo -n " (specify new version:<input type=text id=updatespecversion value=\"\" size=\"12\">"
|
|
echo -n " or changelog for a new release:<input type=text id=rebuildspecchangelog value=\"$REBUILDSPECCHANGELOG\" size=\"40\">)"
|
|
echo -n "]]></editcontrols>"
|
|
# editor textarea
|
|
echo -n "<editor><![CDATA[Current <b>$PACKAGE.spec</b> in build environment:<textarea id=spectext "
|
|
echo -n "onkeyup=\"getElementById('savebutton').disabled=false;getElementById('savebutton').class='redbutton';\" class=editor>"
|
|
$SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "cat $PACKAGE.spec"
|
|
echo -n "</textarea>"
|
|
# specfile save
|
|
echo -n "<input type=button id=savebutton value=\"save\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "REQUEST=savespec&SPECTEXT=\"+encodeURIComponent(editor.getValue()));"
|
|
echo -n "this.disabled=true; disabled=disabled class=redbutton>"
|
|
# specfile reload
|
|
echo -n "<input type=button id=updatespecbutton value=\"reload\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "REQUEST=reloadspec\");>"
|
|
# specfile rename
|
|
echo -n "<input type=button id=updatespecbutton value=\"rename to:\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&RENAMESPECFROM=$PACKAGE&"
|
|
echo -n "SPECTEXT=\"+encodeURIComponent(editor.getValue())+\"&"
|
|
echo -n "REQUEST=renamespec&PACKAGE=\"+encodeURIComponent(getElementById('specnewname').value));>"
|
|
echo -n "<input type=text id=specnewname value=\"\" size=\"10\">.spec"
|
|
# specfile delete
|
|
echo -n "<input type=button id=updatespecbutton value=\"delete\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "REQUEST=deletespec\",\"`cgi_encodevar "Really delete <b>$PACKAGE.spec</b>?"`\")>"
|
|
echo -n "]]></editor>"
|
|
# else
|
|
# echo "<output><![CDATA[<div align=left class=output id=outputtop>"
|
|
# echo "No pre-existing .spec file $PACKAGE.spec in current working environment. Choose package from a repository and press 'Unpack and edit' to edit."
|
|
# echo -n "</div>"
|
|
# echo -n "]]></output>"
|
|
fi
|
|
REQUEST=
|
|
fi
|
|
|
|
# operation panel
|
|
if [ "$MAINTAINERMODE" != "true" ]; then
|
|
echo -n "<operationpanel><![CDATA["
|
|
[ "$PACKAGE" ] && echo -n "Package: <b>$PACKAGE</b><br>"
|
|
echo -n "Target arch:<select id=rpmbuildarch>"
|
|
for f in i586 arm x86_64 ppc; do
|
|
SELECTED=
|
|
if [ ! "$RPMBUILDARCH" -a "$f" = "${AUTOPORT_ARCH[$ENVIRONMENT]}" ]; then
|
|
SELECTED="selected=\"selected\"";
|
|
fi
|
|
echo -n "<option value=\"$f\" $SELECTED>$f</option>"
|
|
done
|
|
echo -n "</select>"
|
|
echo -n "<label><input type=checkbox id=\"rpmforce\" value=\"force\">force</label>"
|
|
# destination repository select
|
|
echo -n "<br>Send to:"
|
|
echo -n "<select id=sendrepository>"
|
|
for f in `$SUDO_WRAPPER 0 local "" "/usr/sbin/openmamba-repository list"`; do
|
|
repname=`basename $f`
|
|
if [ "$repname" = "devel-${AUTOPORT_CHROOT_USER[$ENVIRONMENT]}" -o \
|
|
"$repname" = "${AUTOPORT_BASE_REPOSITORY[$ENVIRONMENT]}" -o \
|
|
"$repname" = "devel-$USER" -o \
|
|
"$USER_ALLREPOSITORIES" ]; then
|
|
SELECTED=
|
|
if [ "$SENDREPOSITORY" = "$repname" ]; then
|
|
SELECTED="selected=\"selected\"";
|
|
elif [ ! "$SENDREPOSITORY" -a "${AUTOPORT_BASE_REPOSITORY[$ENVIRONMENT]}" = "$repname" ]; then
|
|
SELECTED="selected=\"selected\"";
|
|
fi
|
|
echo -n "<option value=\"$repname\" $SELECTED>$repname</option>"
|
|
fi
|
|
done
|
|
echo -n "</select><br>"
|
|
[ "${AUTOPORT_UPDATE[$ENVIRONMENT]}" -o "$STATE_ADVANCEDCONTROLS" ] && echo -n "<hr><b>Autodist batch builds:</b><br>"
|
|
if [ "$PACKAGE" ]; then
|
|
if [ "${AUTOPORT_UPDATE[$ENVIRONMENT]}" ]; then
|
|
# autodist show patch
|
|
echo -n "Patch:<input type=button value=\"show\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "REQUEST=showpatch\");>"
|
|
# autodist remove patch
|
|
echo -n "<input type=button value=\"remove\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "REQUEST=removepatch\""
|
|
echo -n ",\"`cgi_encodevar "Remove current autodist patch for package <b>$PACKAGE</b>?"`\"); class=redbutton>"
|
|
# autodist update patch
|
|
echo -n "<input type=button id=updatepatchbutton value=\"update\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "SPECTEXT=\"+encodeURIComponent(editor.getValue())+\"&"
|
|
echo -n "REQUEST=updatepatch\""
|
|
echo -n ",\"`cgi_encodevar "Create an autodist <b>update</b> patch for package <b>$PACKAGE</b>?"`\"); class=redbutton>"
|
|
# autodist build patch
|
|
echo -n "<input type=button id=buildpatchbutton value=\"build\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "SPECTEXT=\"+encodeURIComponent(editor.getValue())+\"&"
|
|
echo -n "REQUEST=buildpatch\""
|
|
echo -n ",\"`cgi_encodevar "Create an autodist <b>build</b> patch for package <b>$PACKAGE</b>?"`\"); class=redbutton>"
|
|
# autodist show schedule
|
|
echo -n "<br>Schedule:<input type=button value=\"show\" onclick=javascript:ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "REQUEST=showscheduled\");>"
|
|
# autodist schedule
|
|
echo -n "<input type=button value=\"schedule\" onclick=javascript:ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "REQUEST=schedule\""
|
|
echo -n ",\"`cgi_encodevar "Schedule <b>$PACKAGE</b> autodist job for automatic update?"`\"); class=redbutton>"
|
|
# autodist unschedule
|
|
echo -n "<input type=button value=\"unschedule\" onclick=javascript:ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "REQUEST=unschedule\"); class=redbutton>"
|
|
# autodist skip
|
|
echo -n "<input type=button value=\"skip\" onclick=javascript:ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "REQUEST=skip\"); class=redbutton><br>"
|
|
fi
|
|
fi
|
|
if [ "$STATE_ADVANCEDCONTROLS" ]; then
|
|
# autodist list-jobs
|
|
echo -n "Job:<select id=autodistjobs onchange="
|
|
echo -n "ajax_getvalues(\""
|
|
echo -n "AUTODISTFORCE=\"+getElementById('rpmforce').checked+\"&"
|
|
echo -n "AUTODISTARCH=\"+getSelectedValueById('rpmbuildarch')+\"&"
|
|
echo -n "AUTODISTJOB=\"+getSelectedValueById('autodistjobs')+\"&"
|
|
echo -n "ENVIRONMENT=$ENVIRONMENT&PACKAGE=$PACKAGEENCODED&REQUEST=autodistjobchange\");>"
|
|
echo -n "<option value=\"\">-- select a job --</option>"
|
|
for f in `$SUDO_WRAPPER 0 $ENVIRONMENT "" "autodist --list-jobs"`; do
|
|
SELECTED=
|
|
if [ "$AUTODISTJOB" ]; then
|
|
[ "$AUTODISTJOB" = "$f" ] && SELECTED="selected=\"selected\""
|
|
elif [ "$PACKAGE" = "$f" ]; then
|
|
SELECTED="selected=\"selected\""
|
|
AUTODISTJOB=$f
|
|
fi
|
|
JOBENCODED=`cgi_encodevar $f`
|
|
echo -n "<option value=\"$JOBENCODED\" $SELECTED>$f</option>"
|
|
done
|
|
if [ "$PACKAGE" ]; then
|
|
[ "$AUTODISTJOB" ] && SELECTED= || {
|
|
SELECTED="selected=\"selected\""
|
|
AUTODISTJOB=$PACKAGE
|
|
}
|
|
echo -n "<option value=\"$PACKAGEENCODED\" $SELECTED>$PACKAGE (generic)</option>"
|
|
fi
|
|
echo -n "</select>"
|
|
if [ "$AUTODISTJOB" ]; then
|
|
echo -n "<br>Job packages:<div class=multiselect style=\"height:60px;\">"
|
|
for p in `$SUDO_WRAPPER 0 $ENVIRONMENT "" "autodist --list-pkgs $AUTODISTJOB"`; do
|
|
if [ "$AUTODISTPKGS" ]; then
|
|
for i in $AUTODISTPKGS; do
|
|
[ "$i" = "$p" ] && { SELECTED=checked; break; } || SELECTED=
|
|
done
|
|
else
|
|
[ "$p" = "$AUTODISTJOB" ] && SELECTED=checked || SELECTED=
|
|
fi
|
|
echo -n "<label><input type=checkbox name=autodistpkgscheckbox value=\"$p\" $SELECTED>${p}</label>"
|
|
done
|
|
echo -n "</div>"
|
|
# autodist prepare
|
|
echo -n "<input type=button value=\"prepare\" onclick="
|
|
echo -n "p=getCheckedValuesByName('autodistpkgscheckbox');ajax_getvalues(\""
|
|
echo -n "AUTODISTFORCE=\"+getElementById('rpmforce').checked+\"&"
|
|
echo -n "AUTODISTARCH=\"+getSelectedValueById('rpmbuildarch')+\"&"
|
|
echo -n "AUTODISTJOB=\"+getSelectedValueById('autodistjobs')+\"&"
|
|
echo -n "AUTODISTPKGS=\"+encodeURIComponent(p)+\"&"
|
|
echo -n "ENVIRONMENT=$ENVIRONMENT&PACKAGE=$PACKAGEENCODED&REQUEST=autodistprepare\");>"
|
|
# autodist update
|
|
echo -n "<input type=button value=\"update\" onclick="
|
|
echo -n "p=getCheckedValuesByName('autodistpkgscheckbox');ajax_getvalues(\""
|
|
echo -n "AUTODISTFORCE=\"+getElementById('rpmforce').checked+\"&"
|
|
echo -n "AUTODISTARCH=\"+getSelectedValueById('rpmbuildarch')+\"&"
|
|
echo -n "AUTODISTJOB=\"+getSelectedValueById('autodistjobs')+\"&"
|
|
echo -n "AUTODISTPKGS=\"+encodeURIComponent(p)+\"&"
|
|
echo -n "ENVIRONMENT=$ENVIRONMENT&PACKAGE=$PACKAGEENCODED&REQUEST=autodistupdate\");>"
|
|
# autodist build
|
|
echo -n "<input type=button value=\"build\" onclick="
|
|
echo -n "p=getCheckedValuesByName('autodistpkgscheckbox');ajax_getvalues(\""
|
|
echo -n "AUTODISTFORCE=\"+getElementById('rpmforce').checked+\"&"
|
|
echo -n "AUTODISTARCH=\"+getSelectedValueById('rpmbuildarch')+\"&"
|
|
echo -n "AUTODISTJOB=\"+getSelectedValueById('autodistjobs')+\"&"
|
|
echo -n "AUTODISTPKGS=\"+encodeURIComponent(p)+\"&"
|
|
echo -n "SPECTEXT=\"+encodeURIComponent(editor.getValue())+\"&"
|
|
echo -n "ENVIRONMENT=$ENVIRONMENT&PACKAGE=$PACKAGEENCODED&REQUEST=autodistbuild\"); class=boldbutton>"
|
|
# autodist install
|
|
[ ! "$USER_CANINSTALL" ] && DISABLED="disabled=disabled" || DISABLED=
|
|
echo -n "<input type=button value=\"install\" onclick="
|
|
echo -n "p=getCheckedValuesByName('autodistpkgscheckbox');ajax_getvalues(\""
|
|
echo -n "AUTODISTFORCE=\"+getElementById('rpmforce').checked+\"&"
|
|
echo -n "AUTODISTARCH=\"+getSelectedValueById('rpmbuildarch')+\"&"
|
|
echo -n "AUTODISTJOB=\"+getSelectedValueById('autodistjobs')+\"&"
|
|
echo -n "AUTODISTPKGS=\"+encodeURIComponent(p)+\"&"
|
|
echo -n "ENVIRONMENT=$ENVIRONMENT&PACKAGE=$PACKAGEENCODED&REQUEST=autodistinstall\"); class=redbutton $DISABLED>"
|
|
# autodist send
|
|
[ ! "$USER_ALLREPOSITORIES" ] && DISABLED="disabled=disabled" || DISABLED=
|
|
echo -n "<input type=button value=\"send\" onclick="
|
|
echo -n "p=getCheckedValuesByName('autodistpkgscheckbox');ajax_getvalues(\""
|
|
echo -n "AUTODISTFORCE=\"+getElementById('rpmforce').checked+\"&"
|
|
echo -n "AUTODISTARCH=\"+getSelectedValueById('rpmbuildarch')+\"&"
|
|
echo -n "AUTODISTJOB=\"+getSelectedValueById('autodistjobs')+\"&"
|
|
echo -n "AUTODISTPKGS=\"+encodeURIComponent(p)+\"&"
|
|
echo -n "SENDREPOSITORY=\"+getSelectedValueById('sendrepository')+\"&"
|
|
echo -n "ENVIRONMENT=$ENVIRONMENT&PACKAGE=$PACKAGEENCODED&REQUEST=autodistsend\""
|
|
echo -n ",\"`cgi_encodevar "Send selected packages for <b>"`\"+getSelectedValueById('autodistjobs')+\"`cgi_encodevar "</b> job to <b>"`\"+"
|
|
echo -n "getSelectedValueById('sendrepository')+\"`cgi_encodevar "</b>?"`\"); class=redbutton $DISABLED>"
|
|
else
|
|
echo -n "<br>"
|
|
fi
|
|
fi
|
|
if [ "$PACKAGE" ]; then
|
|
if [ "$STATE_ADVANCEDCONTROLS" -o "${AUTOPORT_UPDATE[$ENVIRONMENT]}" ]; then
|
|
# autodist logs
|
|
echo -n "<hr><b>Last autodist logs:</b> "
|
|
echo -n "OK <input id=\"logstatusOK\" type=\"radio\" name=\"logstatus\" value=\"OK\"> "
|
|
echo -n "FAILED<input type=\"radio\" name=\"logstatus\" value=\"FAILED\" checked=\"checked\"><br>"
|
|
echo -n "<input type=button value=\"prepare\" onclick=javascript:ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "REQUEST=showlog&LOGTYPE=prepare&LOGSTATUSOK=\"+document.all.logstatusOK.checked);>"
|
|
echo -n "<input type=button value=\"update\" onclick=javascript:ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "REQUEST=showlog&LOGTYPE=update&LOGSTATUSOK=\"+document.all.logstatusOK.checked);>"
|
|
echo -n "<input type=button value=\"build\" onclick=javascript:ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "REQUEST=showlog&LOGTYPE=build&LOGSTATUSOK=\"+document.all.logstatusOK.checked);>"
|
|
echo -n "<input type=button value=\"install\" onclick=javascript:ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "REQUEST=showlog&LOGTYPE=install&LOGSTATUSOK=\"+document.all.logstatusOK.checked);>"
|
|
echo -n "<input type=button value=\"send\" onclick=javascript:ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "REQUEST=showlog&LOGTYPE=send&LOGSTATUSOK=\"+document.all.logstatusOK.checked);>"
|
|
fi
|
|
echo -n "<hr><b>RPM packaging commands:</b><br>"
|
|
# check for updates
|
|
echo -n "<input type=button value=\"check for updates\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=autospecupdatescheck\");>"
|
|
# unpack
|
|
echo -n "<input type=button value=\"unpack\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=rpmprepare&"
|
|
echo -n "SPECTEXT=\"+encodeURIComponent(editor.getValue()));>"
|
|
# build
|
|
echo -n "<input type=button value=\"build\" onclick=javascript:"
|
|
echo -n "i=getElementById('rpmbuildarch').selectedIndex;"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=rpmbuild&"
|
|
echo -n "RPMBUILDARCH=\"+getElementById('rpmbuildarch').options[i].value+\"&"
|
|
echo -n "SPECTEXT=\"+encodeURIComponent(editor.getValue())+\"&RPMFORCE=\"+getElementById('rpmforce').checked); class=boldbutton>"
|
|
# buildroot files
|
|
echo -n "<input type=button value=\"buildroot files\" onclick=javascript:"
|
|
echo -n "i=getElementById('rpmbuildarch').selectedIndex;"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=buildrootfiles\");>"
|
|
# unpackaged files
|
|
echo -n "<input type=button value=\"unpackaged files\" onclick=javascript:"
|
|
echo -n "i=getElementById('rpmbuildarch').selectedIndex;"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=autospeclistcheck&"
|
|
echo -n "RPMBUILDARCH=\"+getElementById('rpmbuildarch').options[i].value+\"&"
|
|
echo -n "SPECTEXT=\"+encodeURIComponent(editor.getValue()));>"
|
|
# build requirements
|
|
echo -n "<input type=button value=\"build requirements\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=autospecbuildreq\");>"
|
|
# recreate SRPM
|
|
echo -n "<input type=button value=\"recreate SRPM\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=srpmbuild&"
|
|
echo -n "SPECTEXT=\"+encodeURIComponent(editor.getValue())+\"&RPMFORCE=\"+getElementById('rpmforce').checked);>"
|
|
# rpm checks
|
|
echo -n "<input type=button id=rpmchecks value=\"checks\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=rpmchecks\");>"
|
|
echo -n "<input type=button id=rpmsimulateinstallbutton value=\"simulate install\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=rpmsimulateinstall\");>"
|
|
# rpm install
|
|
[ ! "$USER_CANINSTALL" ] && DISABLED="disabled=disabled"
|
|
echo -n "<input type=button id=rpminstallbutton value=\"install\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=rpminstall&"
|
|
echo -n "RPMFORCE=\"+getElementById('rpmforce').checked"
|
|
echo -n ",\"`cgi_encodevar "Install <b>$PACKAGE</b> in current environment?"`\""
|
|
echo -n "); class=redbutton $DISABLED>"
|
|
# rpm send
|
|
echo -n "<input type=button id=sendpackagebutton value=\"send\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=sendpackage&"
|
|
echo -n "SENDREPOSITORY=\"+getSelectedValueById('sendrepository')"
|
|
echo -n ",\"`cgi_encodevar "Send <b>$PACKAGE</b> built packages to <b>"`\"+getSelectedValueById('sendrepository')+"
|
|
echo -n "\"`cgi_encodevar "</b>?"`\""
|
|
echo -n "); class=redbutton>"
|
|
# recreate and send SRPM
|
|
echo -n "<input type=button id=sendsourcebutton value=\"recreate and send SRPM\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=sendsource&"
|
|
echo -n "SPECTEXT=\"+encodeURIComponent(editor.getValue())+\"&"
|
|
echo -n "SENDREPOSITORY=\"+getSelectedValueById('sendrepository')"
|
|
echo -n ",\"`cgi_encodevar "Rebuild <b>$PACKAGE</b> source package only and send to <b>"`\"+getSelectedValueById('sendrepository')+"
|
|
echo -n "\"`cgi_encodevar "</b>?"`\""
|
|
echo -n "); class=redbutton>"
|
|
# add patches
|
|
echo -n "<hr><b>Add patches:</b>"
|
|
echo -n "<input type=button id=addpatchbutton value=\"submit\" onclick=javascript:ajax_getvalues(\""
|
|
echo -n "REQUEST=addpatch&ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "ADDPATCHURL=\"+encodeURIComponent(getElementById('addpatchurl').value)+\"&"
|
|
echo -n "ADDPATCHNAME=\"+encodeURIComponent(getElementById('addpatchname').value));><br>"
|
|
echo -n "URL:<input type=text id=addpatchurl value=\"\" size=\"28\">"
|
|
echo -n "As: $PACKAGE-<input type=text id=addpatchname value=\"\" size=\"13\">.patch"
|
|
if [ ! "${AUTOPORT_DISABLE[$ENVIRONMENT]}" -a ! "${AUTOPORT_UPDATE[$ENVIRONMENT]}" ]; then
|
|
echo -n "<hr>Automatic port:<br>"
|
|
echo -n "<input type=button id=autoportnp value=\"port\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=autoportnp\"); class=boldbutton>"
|
|
echo -n "<input type=button id=autoportlog value=\"log\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=autoportlog\");>"
|
|
fi
|
|
echo -n "<hr><b>Info from package sources:</b><br>"
|
|
echo -n "<input type=button value=\"builddir files\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=builddirfiles\");>"
|
|
echo -n "<input type=button value=\"changelog(s)\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=showchangelogs\");>"
|
|
echo -n "<input type=button value=\"build docs\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=showbuilddocs\");>"
|
|
echo -n "<input type=button value=\"license(s)\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=showlicenses\");>"
|
|
echo -n "<input type=button value=\"configure help\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=configurehelp\");>"
|
|
echo -n "<hr><b>Generic info:</b><br>"
|
|
echo -n "<input type=button value=\"allowed groups\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=allowedgroups\");>"
|
|
echo -n "<input type=button value=\"approved licenses\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=approvedlicenses\");>"
|
|
echo -n "<div style=\"nowrap;\"><input type=button value=\"macros:\" onclick=javascript:"
|
|
echo -n "i=getElementById('macrosfile').selectedIndex;"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&REQUEST=showmacrosfile&"
|
|
echo -n "MACROSFILE=\"+getElementById('macrosfile').options[i].value);>"
|
|
echo -n "<select id=macrosfile>"
|
|
for f in $WORKINGROOT/etc/rpm/macros.*; do
|
|
macrosfilename=`basename $f`
|
|
macrosfile=`echo $macrosfilename | sed "s|macros\.||"`
|
|
echo -n "<option value=\"$macrosfile\">$macrosfile</option>"
|
|
done
|
|
echo -n "</select></div>"
|
|
fi
|
|
echo -n "]]></operationpanel>"
|
|
fi
|
|
|
|
echo -n "<chatpanel><![CDATA["
|
|
# broadcast message
|
|
echo -n "<hr><b>Broadcast message:</b><br>"
|
|
echo -n "<input type=text id=broadcastmessage size=\"25\">"
|
|
echo -n "<input type=button value=\"send\" onClick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&PACKAGE=$PACKAGEENCODED&"
|
|
echo -n "REQUEST=broadcastmessage&BROADCASTMESSAGE=\"+encodeURIComponent(getElementById('broadcastmessage').value));"
|
|
echo -n "getElementById('broadcastmessage').value=\"\";>"
|
|
echo -n "]]></chatpanel>"
|
|
|
|
if [ "$REQUEST" != "" ]; then
|
|
echo -n "<output><![CDATA["
|
|
echo -n "<div align=left class=output "
|
|
if [ "$REQUEST" = "rpmbuild" -o "$REQUEST" = "autoportnp" -o "$REQUEST" = "rpmprepare" \
|
|
-o "$REQUEST" = "sendpackage" -o "$REQUEST" = "sendsource" -o "$REQUEST" = "autospeclistcheck" \
|
|
-o "$REQUEST" = "autodistprepare" -o "$REQUEST" = "autodistupdate" -o "$REQUEST" = "autodistbuild" \
|
|
-o "$REQUEST" = "autodistinstall" -o "$REQUEST" = "autodistsend" ]; then
|
|
echo -n "id=outputbottom>"
|
|
else
|
|
echo -n "id=outputtop>"
|
|
fi
|
|
if [ "$REQUEST" != "showchangelogs" -a "$REQUEST" != "showbuilddocs" -a "$REQUEST" != "showlicenses" ]; then
|
|
echo -n "<pre><!-- SCROLL -->"
|
|
fi
|
|
RET=255
|
|
fi
|
|
|
|
case $REQUEST in
|
|
"showpatch") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "autodist-tool makepatch $PACKAGE"; RET=$? ;;
|
|
"removepatch") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "autodist-tool makepatch $PACKAGE remove"
|
|
RET=$?
|
|
if [ $RET -eq 0 ]; then
|
|
social_log "SUSER=$USER SEMAIL=$USER_EMAIL STEXT=\"removed the autodist patch for <b>$PACKAGE</b>\" STIME=`date +%s`"
|
|
fi ;;
|
|
"updatepatch") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "autodist-tool makepatch $PACKAGE update"
|
|
RET=$?
|
|
if [ $RET -eq 0 ]; then
|
|
social_log "SUSER=$USER SEMAIL=$USER_EMAIL STEXT=\"made an autodist <b>update</b> patch for <b>$PACKAGE</b>\" STIME=`date +%s`"
|
|
fi ;;
|
|
"buildpatch") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "autodist-tool makepatch $PACKAGE build"
|
|
RET=$?
|
|
if [ $RET -eq 0 ]; then
|
|
social_log "SUSER=$USER SEMAIL=$USER_EMAIL STEXT=\"made an autodist <b>build</b> patch for <b>$PACKAGE</b>\" STIME=`date +%s`"
|
|
fi ;;
|
|
"showscheduled") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "autodist-tool schedule"; RET=$? ;;
|
|
"schedule") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "autodist-tool schedule $PACKAGE"
|
|
RET=$?
|
|
if [ $RET -eq 0 ]; then
|
|
social_log "SUSER=$USER SEMAIL=$USER_EMAIL STEXT=\"scheduled autodist job <b>$PACKAGE</b>\" STIME=`date +%s`"
|
|
fi ;;
|
|
"unschedule") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "autodist-tool unschedule $PACKAGE"
|
|
RET=$?
|
|
if [ $RET -eq 0 ]; then
|
|
social_log "SUSER=$USER SEMAIL=$USER_EMAIL STEXT=\"unscheduled autodist job <b>$PACKAGE</b>\" STIME=`date +%s`"
|
|
fi ;;
|
|
"skip") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "autodist-tool skip $PACKAGE"
|
|
RET=$?
|
|
if [ $RET -eq 0 ]; then
|
|
social_log "SUSER=$USER SEMAIL=$USER_EMAIL STEXT=\"added autodist job <b>$PACKAGE</b> to skipped list\" STIME=`date +%s`"
|
|
fi ;;
|
|
"autodistprepare") [ "$AUTODISTFORCE" = "true" ] && AUTODISTADD="--force" || AUTODISTADD=
|
|
autodistjobs=
|
|
if [ "$AUTODISTPKGS" ]; then
|
|
for p in $AUTODISTPKGS; do
|
|
autodistjobs="$autodistjobs $AUTODISTJOB/$p"
|
|
done
|
|
else
|
|
autodistjobs="$AUTODISTJOB"
|
|
fi
|
|
$SUDO_WRAPPER 0 $ENVIRONMENT "" "autodist -v -p $autodistjobs --repository ${AUTOPORT_BASE_REPOSITORY[$ENVIRONMENT]} --arch $AUTODISTARCH $AUTODISTADD"
|
|
RET=$? ;;
|
|
"autodistupdate") [ "$AUTODISTFORCE" = "true" ] && AUTODISTADD="--force" || AUTODISTADD=
|
|
autodistjobs=
|
|
if [ "$AUTODISTPKGS" ]; then
|
|
for p in $AUTODISTPKGS; do
|
|
autodistjobs="$autodistjobs $AUTODISTJOB/$p"
|
|
done
|
|
else
|
|
autodistjobs="$AUTODISTJOB"
|
|
fi
|
|
$SUDO_WRAPPER 0 $ENVIRONMENT "" "autodist -v -u $autodistjobs --repository ${AUTOPORT_BASE_REPOSITORY[$ENVIRONMENT]} --arch $AUTODISTARCH $AUTODISTADD"
|
|
RET=$? ;;
|
|
"autodistbuild") [ "$AUTODISTFORCE" = "true" ] && AUTODISTADD="--force" || AUTODISTADD=
|
|
autodistjobs=
|
|
if [ "$AUTODISTPKGS" ]; then
|
|
for p in $AUTODISTPKGS; do
|
|
autodistjobs="$autodistjobs $AUTODISTJOB/$p"
|
|
done
|
|
else
|
|
autodistjobs="$AUTODISTJOB"
|
|
fi
|
|
$SUDO_WRAPPER background $ENVIRONMENT "" "autodist -v -b $autodistjobs --repository ${AUTOPORT_BASE_REPOSITORY[$ENVIRONMENT]} --arch $AUTODISTARCH $AUTODISTADD"
|
|
RET=$?
|
|
#[ $RET -eq 0 ] && social_log "SUSER=$USER SEMAIL=$USER_EMAIL STEXT=\"successfully built <b>$PACKAGE</b>\" STIME=`date +%s`"
|
|
;;
|
|
"autodistinstall") [ "$AUTODISTFORCE" = "true" ] && AUTODISTADD="--force" || AUTODISTADD=
|
|
autodistjobs=
|
|
if [ "$AUTODISTPKGS" ]; then
|
|
for p in $AUTODISTPKGS; do
|
|
autodistjobs="$autodistjobs $AUTODISTJOB/$p"
|
|
done
|
|
else
|
|
autodistjobs="$AUTODISTJOB"
|
|
fi
|
|
$SUDO_WRAPPER 0 $ENVIRONMENT "" "autodist -v -i $autodistjobs --repository ${AUTOPORT_BASE_REPOSITORY[$ENVIRONMENT]} --arch $AUTODISTARCH $AUTODISTADD"
|
|
RET=$? ;;
|
|
"autodistsend") [ "$AUTODISTFORCE" = "true" ] && AUTODISTADD="--force" || AUTODISTADD=
|
|
autodistjobs=
|
|
if [ "$AUTODISTPKGS" ]; then
|
|
for p in $AUTODISTPKGS; do
|
|
autodistjobs="$autodistjobs $AUTODISTJOB/$p"
|
|
done
|
|
else
|
|
autodistjobs="$AUTODISTJOB"
|
|
fi
|
|
$SUDO_WRAPPER 0 $ENVIRONMENT "" "autodist -v -s $autodistjobs --repository ${AUTOPORT_BASE_REPOSITORY[$ENVIRONMENT]} --server $SENDREPOSITORY --arch $AUTODISTARCH $AUTODISTADD"
|
|
RET=$?
|
|
[ $RET -eq 0 ] && social_log "SUSER=$USER SEMAIL=$USER_EMAIL STEXT=\"sent <b>$PACKAGE</b> to <b>$SENDREPOSITORY</b>\" STIME=`date +%s`"
|
|
;;
|
|
"autoport") $SUDO_WRAPPER background $ENVIRONMENT $PACKAGE "autoport $PACKAGE -r $REPOSITORY -v"
|
|
RET=$?
|
|
;;
|
|
"buildrootfiles") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "cd @RPMBUILDROOT@ && find @BUILDROOT@"; RET=$? ;;
|
|
"autospecupdatescheck") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "autospec -u $PACKAGE -a2"; RET=$? ;;
|
|
"rpmprepare") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "rpmbuild -bp $PACKAGE.spec"; RET=$? ;;
|
|
"rpmbuild") echo "`date` - RPMBUILD=$PACKAGE USER=$USER ENVIRONMENT=$ENVIRONMENT" >> $WEBBUILD_STATEDIR/buildingnow_log
|
|
[ "$RPMFORCE" = "true" ] && RPMFORCEADD="--force-build"
|
|
[ "$RPMBUILDARCH" -a "$RPMBUILDARCH" != "${AUTOPORT_ARCH[$ENVIRONMENT]}" ] && \
|
|
RPMARCHADD="-A $RPMBUILDARCH --define \"cross_target_cpu=$RPMBUILDARCH\""
|
|
$SUDO_WRAPPER background $ENVIRONMENT $PACKAGE "autospec -u $PACKAGE -a5,6 $RPMFORCEADD $RPMARCHADD"
|
|
# && echo \"Webbuild HINT: now you may want to click on 'build requirements', add build requirements in .spec file and then 'recreate SRPMS'\""
|
|
RET=$?
|
|
# if [ $RET -eq 0 ]; then
|
|
# social_log "SUSER=$USER SEMAIL=$USER_EMAIL STEXT=\"successfully built <b>$PACKAGE</b>\" STIME=`date +%s`"
|
|
# fi
|
|
sed -i "|RPMBUILD=$PACKAGE USER=$USER ENVIRONMENT=$ENVIRONMENT|d" $WEBBUILD_STATEDIR/buildingnow_log
|
|
;;
|
|
"srpmbuild") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "rpmbuild -bs $PACKAGE.spec"
|
|
RET=$? ;;
|
|
"autospeclistcheck")
|
|
[ "$RPMBUILDARCH" -a "$RPMBUILDARCH" != "${AUTOPORT_ARCH[$ENVIRONMENT]}" ] && \
|
|
RPMARCHADD="-A $RPMBUILDARCH --define \"cross_target_cpu=$RPMBUILDARCH\""
|
|
$SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "autospec -u $PACKAGE -a5 --list-check $RPMARCHADD"
|
|
RET=$? ;;
|
|
"autospecbuildreq") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "autospec -u $PACKAGE -a6"
|
|
RET=$? ;;
|
|
"rpmchecks") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "autospec -u $PACKAGE -a8"; RET=$? ;;
|
|
"rpmsimulateinstall") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "autospec -u $PACKAGE -a7"; RET=$? ;;
|
|
"rpminstall") if [ "$USER_CANINSTALL" ]; then
|
|
[ "$RPMFORCE" = "true" ] && RPMFORCEADD="--force-install"
|
|
$SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "autospec -u $PACKAGE -a11 $RPMFORCEADD"; RET=$?
|
|
else
|
|
echo "Install function disabled."
|
|
RET=1
|
|
fi ;;
|
|
"addpatch") if [ "$ADDPATCHURL" -a "$ADDPATCHNAME" ]; then
|
|
$SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "curl -s -k \"$ADDPATCHURL\" -o ../SOURCES/$PACKAGE-$ADDPATCHNAME.patch"
|
|
RET=$?
|
|
[ $RET -eq 0 ] && echo "Patch added with name $PACKAGE-$ADDPATCHNAME.patch"
|
|
else
|
|
echo "Patch URL or destination name not provided."
|
|
RET=1
|
|
fi ;;
|
|
"sendpackage") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "autospec -u $PACKAGE -a10 --server $SENDREPOSITORY"
|
|
RET=$?
|
|
if [ $RET -eq 0 ]; then
|
|
social_log "SUSER=$USER SEMAIL=$USER_EMAIL STEXT=\"sent <b>$PACKAGE</b> to <b>$SENDREPOSITORY</b>\" STIME=`date +%s`"
|
|
fi ;;
|
|
"sendsource") [ "$RPMFORCE" = "true" ] && RPMFORCEADD="--force --nodeps"
|
|
if [ "$SENDREPOSITORY" ]; then
|
|
$SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "rpmbuild -bs $PACKAGE.spec $RPMFORCEADD && autospec -u $PACKAGE -a10 --server $SENDREPOSITORY --norpm"
|
|
RET=$?
|
|
else
|
|
echo "ERROR: send repository is not defined."
|
|
RET=255
|
|
fi ;;
|
|
"repositoryimport")
|
|
for p in $PACKAGES; do
|
|
[ "$REPOSITORYSIMULATE" = "true" -o ! "$USER_CANMAINTAIN" ] && SIMULATEADD="-s" || SIMULATEADD=
|
|
$SUDO_WRAPPER 0 local "$PACKAGE" "openmamba-repository import $SENDREPOSITORY $p -d $REPOSITORYIMPORTTO $SIMULATEADD -y"
|
|
RET=$?
|
|
if [ ! "$SIMULATEADD" -a $RET -eq 0 ]; then
|
|
social_log "SUSER=$USER SEMAIL=$USER_EMAIL STEXT=\"imported <b>$p</b> from <b>$SENDREPOSITORY</b> to <b>$REPOSITORYIMPORTTO</b>\" STIME=`date +%s`"
|
|
fi
|
|
[ $RET -eq 0 ] || break
|
|
done
|
|
;;
|
|
"repositoryrelease")
|
|
for p in $PACKAGES; do
|
|
[ "$REPOSITORYSIMULATE" = "true" -o ! "$USER_CANMAINTAIN" ] && SIMULATEADD="-s" || SIMULATEADD=
|
|
$SUDO_WRAPPER 0 local "$PACKAGE" "openmamba-repository release $SENDREPOSITORY $p -d $REPOSITORYIMPORTTO $SIMULATEADD -y"
|
|
RET=$?
|
|
if [ ! "$SIMULATEADD" -a $RET -eq 0 ]; then
|
|
social_log "SUSER=$USER SEMAIL=$USER_EMAIL STEXT=\"released <b>$p</b> from <b>$SENDREPOSITORY</b> to <b>$REPOSITORYIMPORTTO</b>\" STIME=`date +%s`"
|
|
fi
|
|
[ $RET -eq 0 ] || break
|
|
done
|
|
;;
|
|
"repositorydiff")
|
|
for p in $PACKAGES; do
|
|
$SUDO_WRAPPER 0 local "" "openmamba-repository diff $SENDREPOSITORY $p -d $REPOSITORYIMPORTTO"
|
|
RET=$?
|
|
[ $RET -eq 0 ] || break
|
|
done
|
|
;;
|
|
"repositoryarchive")
|
|
for p in $PACKAGES; do
|
|
[ "$REPOSITORYSIMULATE" = "true" -o ! "$USER_CANMAINTAIN" ] && SIMULATEADD="-s" || SIMULATEADD=
|
|
$SUDO_WRAPPER 0 local "$PACKAGE" "openmamba-repository archive $SENDREPOSITORY $p -y"
|
|
RET=$?
|
|
if [ ! "$SIMULATEADD" -a $RET -eq 0 ]; then
|
|
social_log "SUSER=$USER SEMAIL=$USER_EMAIL STEXT=\"archived <b>$p</b> from <b>$SENDREPOSITORY</b>\" STIME=`date +%s`"
|
|
fi
|
|
[ $RET -eq 0 ] || break
|
|
done
|
|
;;
|
|
"repositorysync")
|
|
if [ "$REPOSITORY" ]; then
|
|
$SUDO_WRAPPER background local "" "/etc/cron.hourly/20-openmamba-apt $REPOSITORY"
|
|
RET=$?
|
|
[ $RET -eq 0 ] && $SUDO_WRAPPER background local "" "/etc/cron.hourly/40-openmamba-rsync $REPOSITORY"
|
|
RET=$?
|
|
[ $RET -eq 0 ] || break
|
|
fi
|
|
;;
|
|
"autoportnp") $SUDO_WRAPPER keeplog $ENVIRONMENT $PACKAGE "autoport -np $PACKAGE"; RET=$? ;;
|
|
"autoportlog") cat "$AUTOPORTLOGDIR/current.log"; RET=$? ;;
|
|
"allowedgroups") $SUDO_WRAPPER 0 $ENVIRONMENT "" "autospec --eval rpm_allowed_groups"; RET=$? ;;
|
|
"approvedlicenses") $SUDO_WRAPPER 0 $ENVIRONMENT "" "autospec --eval rpm_approved_licenses | grep -v \"^#\"" | \
|
|
while read line; do
|
|
echo $line
|
|
done
|
|
RET=0
|
|
;;
|
|
"builddirfiles") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "cd @RPMBUILDDIR@ && find @BUILDDIR@"; RET=$? ;;
|
|
"showchangelogs"|"showbuilddocs"|"showlicenses")
|
|
if [ "$REQUEST" = "showchangelogs" ]; then
|
|
PATTERN="-iname changelog -or -iname news -and -type f"
|
|
elif [ "$REQUEST" = "showlicenses" ]; then
|
|
PATTERN="-iname license\* -or -iname copying\* -or -iname authors\* -and -type f"
|
|
elif [ "$REQUEST" = "showbuilddocs" ]; then
|
|
PATTERN="-iname readme\* -or -iname install\* -or -iname todo\* -or -iname pkgbuild\* -and -type f"
|
|
fi
|
|
files=`$SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "cd @RPMBUILDDIR@/@BUILDDIR@ && find . $PATTERN -maxdepth 2"`
|
|
cnt=0
|
|
for f in $files; do
|
|
echo -n "<a href=#logfile-$f>$f</a><br>"
|
|
done
|
|
echo -n "<br>"
|
|
for f in $files; do
|
|
echo -n "<a name=logfile-$f><p><b>File $f:</b></a><pre>"
|
|
$SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "cd @RPMBUILDDIR@/@BUILDDIR@ && cat $f"
|
|
RET=$?
|
|
echo -n "</pre>"
|
|
done
|
|
;;
|
|
"configurehelp") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "cd @RPMBUILDDIR@/@BUILDDIR@ && ./configure --help"; RET=$? ;;
|
|
"showmacrosfile") $SUDO_WRAPPER 0 $ENVIRONMENT $PACKAGE "cat /etc/rpm/macros.$MACROSFILE"; RET=$? ;;
|
|
*) RET=0 ;;
|
|
esac
|
|
|
|
if [ "$REQUEST" != "" ]; then
|
|
if [ "$REQUEST" != "showchangelogs" -a "$REQUEST" != "showbuilddocs" -a "$REQUEST" != "showlicenses" ]; then
|
|
echo -n "<!-- ENDSCROLL --></pre>"
|
|
fi
|
|
if [ $RET -eq 0 ]; then
|
|
echo "Result: <font color=green><b>OK</b></font>"
|
|
else
|
|
echo "Result: <font color=red><b>ERROR ($RET)</b></font>"
|
|
fi
|
|
echo -n "</div>"
|
|
echo -n "]]></output>"
|
|
fi
|
|
|
|
if [ "$MAINTAINERMODE" = "true" ]; then
|
|
echo -n "<packages> </packages>"
|
|
echo -n "<operationpanel><![CDATA["
|
|
if [ "$REPOSITORY" ]; then
|
|
echo -n "<b>Repository maintenance:</b><br>"
|
|
# echo -n "<select multiple size=8 id=package onchange=javascript:"
|
|
# echo -n "i=getElementById('repository').selectedIndex;ajax_getvalues(\"REQUEST=edit&"
|
|
# echo -n "ENVIRONMENT=$ENVIRONMENT&MAINTAINERMODE=\"+getElementById('maintain').checked+\"&"
|
|
# echo -n "PACKAGE=\"+encodeURIComponent(this.value)+\"&"
|
|
# echo -n "REPOSITORY=\"+getElementById('repository').options[i].text);>"
|
|
# echo "<option value=\"\">-- Select a SRPM package --</option>"
|
|
echo -n "<div class=multiselect>"
|
|
for f in $local_ftp/$REPOSITORY/SRPMS.base/*.src.rpm; do
|
|
[ -r $f ] || continue
|
|
pkgname=`basename $f`
|
|
pkgname=${pkgname/.src.rpm}
|
|
pkgrel=${pkgname/*-}
|
|
pkgname=${pkgname/-$pkgrel}
|
|
pkgver=${pkgname/*-}
|
|
pkgname=${pkgname/-$pkgver}
|
|
if [ "$PACKAGE" = "$pkgname" ]; then
|
|
SELECTED="selected=\"selected\"";
|
|
# REQUEST="changesrpm"
|
|
else
|
|
SELECTED=
|
|
fi
|
|
echo -n "<label><input type=checkbox name=packagescheckbox value=\"$pkgname\" $SELECTED>${pkgname} ${pkgver}-${pkgrel}</label>"
|
|
done
|
|
echo -n "</div>"
|
|
echo -n "Origin: <b>$REPOSITORY</b><br>"
|
|
echo -n "Destination: "
|
|
echo -n "<select id=repositoryimportto>"
|
|
if [ "${REPOSITORY:0:10}" = "milestone2" ]; then
|
|
IMPORT_REPOSITORIES=$AUTOPORT_MILESTONE2_IMPORT_REPOSITORIES
|
|
else
|
|
IMPORT_REPOSITORIES=$AUTOPORT_DEVEL_IMPORT_REPOSITORIES
|
|
fi
|
|
for f in $IMPORT_REPOSITORIES; do
|
|
[ "$f" != "$REPOSITORY" ] && echo -n "<option value=\"$f\">$f</option>"
|
|
done
|
|
echo -n "</select><br>"
|
|
# repository compare
|
|
echo -n "<input type=button value=\"compare\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&"
|
|
echo -n "PACKAGES=\"+encodeURIComponent(getCheckedValuesByName('packagescheckbox'))+\"&"
|
|
echo -n "MAINTAINERMODE=\"+getElementById('maintain').checked+\"&"
|
|
echo -n "REPOSITORYIMPORTTO=\"+getSelectedValueById('repositoryimportto')+\"&"
|
|
echo -n "REPOSITORYSIMULATE=\"+getElementById('repositorysimulate').checked+\"&"
|
|
echo -n "SENDREPOSITORY=$REPOSITORY&REQUEST=repositorydiff\");>"
|
|
# repository import
|
|
echo -n "<input type=button value=\"import\" onclick=javascript:"
|
|
echo -n "p=getCheckedValuesByName('packagescheckbox');"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&"
|
|
echo -n "PACKAGES=\"+encodeURIComponent(p)+\"&"
|
|
echo -n "MAINTAINERMODE=\"+getElementById('maintain').checked+\"&"
|
|
echo -n "REPOSITORYIMPORTTO=\"+getSelectedValueById('repositoryimportto')+\"&"
|
|
echo -n "REPOSITORYSIMULATE=\"+getElementById('repositorysimulate').checked+\"&"
|
|
echo -n "SENDREPOSITORY=$REPOSITORY&REQUEST=repositoryimport\""
|
|
echo -n ",\"`cgi_encodevar "Import <b>"`\"+p+\"`cgi_encodevar "</b> from $REPOSITORY to <b>"`\"+getSelectedValueById('repositoryimportto')+"
|
|
echo -n "\"`cgi_encodevar "</b>?"`\""
|
|
echo -n "); class=redbutton>"
|
|
# repository release
|
|
echo -n "<input type=button value=\"release\" onclick=javascript:"
|
|
echo -n "p=getCheckedValuesByName('packagescheckbox');"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&"
|
|
echo -n "PACKAGES=\"+encodeURIComponent(p)+\"&"
|
|
echo -n "MAINTAINERMODE=\"+getElementById('maintain').checked+\"&"
|
|
echo -n "REPOSITORYIMPORTTO=\"+getSelectedValueById('repositoryimportto')+\"&"
|
|
echo -n "REPOSITORYSIMULATE=\"+getElementById('repositorysimulate').checked+\"&"
|
|
echo -n "SENDREPOSITORY=$REPOSITORY&REQUEST=repositoryrelease\""
|
|
echo -n ",\"`cgi_encodevar "Release <b>"`\"+p+\"`cgi_encodevar "</b> in $REPOSITORY to <b>"`\"+getSelectedValueById('repositoryimportto')+"
|
|
echo -n "\"`cgi_encodevar "</b>?"`\""
|
|
echo -n "); class=redbutton>"
|
|
# repository archive
|
|
echo -n "<input type=button value=\"archive\" onclick=javascript:"
|
|
echo -n "p=getCheckedValuesByName('packagescheckbox');"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&"
|
|
echo -n "PACKAGES=\"+encodeURIComponent(p)+\"&"
|
|
echo -n "MAINTAINERMODE=\"+getElementById('maintain').checked+\"&"
|
|
echo -n "SENDREPOSITORY=$REPOSITORY&"
|
|
echo -n "REPOSITORYSIMULATE=\"+getElementById('repositorysimulate').checked+\"&"
|
|
echo -n "REQUEST=repositoryarchive\""
|
|
echo -n ",\"`cgi_encodevar "Archive <b>"`\"+p+\"`cgi_encodevar "</b> in <b>$REPOSITORY</b>?"`\""
|
|
echo -n "); class=redbutton>"
|
|
echo -n "<label><input type=checkbox id=\"repositorysimulate\" value=\"simulate\">simulate</label>"
|
|
# repository sync
|
|
echo -n " <input type=button value=\"sync\" onclick=javascript:"
|
|
echo -n "ajax_getvalues(\"ENVIRONMENT=$ENVIRONMENT&REPOSITORY=$REPOSITORY&"
|
|
echo -n "PACKAGES=\"+encodeURIComponent(getCheckedValuesByName('packagescheckbox'))+\"&"
|
|
echo -n "MAINTAINERMODE=\"+getElementById('maintain').checked+\"&"
|
|
echo -n "REQUEST=repositorysync\""
|
|
echo -n ",\"`cgi_encodevar "Make <b>$REPOSITORY</b> updates immediately available from public server?"`\""
|
|
echo -n "); class=redbutton>"
|
|
fi
|
|
echo -n "]]></operationpanel>"
|
|
fi
|
|
|
|
#if [ ! "$REQUEST" -o "$REQUEST" = "output" ]; then
|
|
# echo -n "<output><![CDATA["
|
|
#
|
|
# echo "Show: [<a href=\"?NUM=\">All hosts</a>] [<a href=\"?SHOWLOG=monitor\">Build hosts monitor</a>]<br>"
|
|
# for h in `seq 0 ${#AUTOPORT_CGI_HOST[*]}`; do
|
|
# curl "${AUTOPORT_CGI_HOST[$h]}?AS_HOST=$h&SHOWINDEX=1" 2>/dev/null
|
|
# done
|
|
# echo "<hr>"
|
|
#
|
|
# [ "$HOST" = "$AS_HOST" ] && echo "<h2>Host: `hostname -s` (`uname -m`, kernel `uname -r`)</h2>"
|
|
#
|
|
# echo -n "]]></output>"
|
|
#fi
|
|
|
|
echo -n "<title>"
|
|
if [ "$MAINTAINERMODE" = "true" ]; then
|
|
[ "$REPOSITORY" ] && echo -n "$REPOSITORY " || echo -n "no repository "
|
|
echo -n "(Maintainer mode)"
|
|
else
|
|
[ "$PACKAGE" ] && echo -n "$PACKAGE " || echo -n "no package "
|
|
echo -n "("
|
|
if [ "${AUTOPORT_CHROOT_USER[$ENVIRONMENT]}" ]; then
|
|
echo -n "${AUTOPORT_CHROOT_USER[$ENVIRONMENT]} "
|
|
else
|
|
echo -n "autodist "
|
|
fi
|
|
if [ "${AUTOPORT_UPDATE[$ENVIRONMENT]}" ]; then
|
|
echo -n "autoupdate"
|
|
elif [ "${AUTOPORT_CHROOT[$ENVIRONMENT]}" ]; then
|
|
echo -n "chroot"
|
|
elif [ "${AUTOPORT_NATIVE[$ENVIRONMENT]}" ]; then
|
|
echo -n "native"
|
|
elif [ "${AUTOPORT_CROSS[$ENVIRONMENT]}" ]; then
|
|
echo -n "cross"
|
|
else
|
|
echo -n "unknown type"
|
|
fi
|
|
echo -n " for ${AUTOPORT_ARCH[$ENVIRONMENT]})"
|
|
fi
|
|
|
|
echo -n " :: openmamba webbuild</title>"
|
|
echo "</webbuild>"
|