mirror of
https://github.com/sbopkg/sbopkg
synced 2024-11-10 12:00:33 +03:00
rework the whole process_queue and related functions; this patch attempts to properly handle certain items by the caller instead of in the called function; it also does away with the INSTALLPKGS and BUILDPKGS toggles; the logging is cleaned up and improved; and various other FIXMEs and tweaks are made along the way.
This commit is contained in:
parent
0ff2ee1f91
commit
07c263c203
@ -852,7 +852,7 @@ info_item() {
|
||||
local CURAPP LONGAPP SHORTAPP
|
||||
local STRING INDEX NAME VER BUILD DEFAULTITEM
|
||||
local CURPACKAGE INSTALLEDPACKAGE MENUPACKAGE TITLEPACKAGE RENAMEDPACKAGE
|
||||
local CHOICE PARSED_SLACK_DESC SBOPKGINSTALLOUTPUT
|
||||
local CHOICE PARSED_SLACK_DESC
|
||||
local APP="$(< $SBOPKGTMP/sbopkg_item_selection)"
|
||||
|
||||
# We need to check and see if the APP has ever been renamed.
|
||||
@ -966,18 +966,17 @@ info_item() {
|
||||
Queue ) add_item_to_queue $APP $CURVERSION-$CURBUILD ON ;;
|
||||
Build )
|
||||
echo "$APP" > $SBOPKGTMP/sbopkg-start-queue
|
||||
process_queue ;;
|
||||
start_dialog_queue ;;
|
||||
Install )
|
||||
SBOPKGINSTALLOUTPUT=$SBOPKGTMP/sbopkg_install_output
|
||||
if [[ ! -e $OUTPUT/$CURPACKAGE ]]; then
|
||||
continue;
|
||||
fi
|
||||
install_package $CURPACKAGE | tee $SBOPKGINSTALLOUTPUT
|
||||
install_package $OUTPUT $CURPACKAGE | tee $TMPLOG
|
||||
read -n 1 -p "Press any key to continue."
|
||||
if [[ $KEEPLOG ]]; then
|
||||
cat $SBOPKGINSTALLOUTPUT >> $LOGFILE
|
||||
cat $TMPLOG >> $LOGFILE
|
||||
fi
|
||||
rm -f $SBOPKGINSTALLOUTPUT
|
||||
rm $TMPLOG
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
@ -1094,8 +1093,6 @@ view_perm_log() {
|
||||
empty_queue() {
|
||||
# This function tests whether the temporary build queue is empty.
|
||||
|
||||
local TMPQUEUE=$SBOPKGTMP/sbopkg-tmp-queue
|
||||
|
||||
if [[ ! -e $TMPQUEUE ]]; then
|
||||
if [[ $DIAG ]]; then
|
||||
dialog --title "Empty Queue" --msgbox \
|
||||
@ -1183,7 +1180,6 @@ load_backup_queue() {
|
||||
# This function loads any backup queue and merges it with any current
|
||||
# $TMPQUEUE.
|
||||
|
||||
local TMPQUEUE=$SBOPKGTMP/sbopkg-tmp-queue
|
||||
local PERMQUEUE=$SBOPKGTMP/sbopkg-savedqueue
|
||||
local BACKUPQUEUE_LOCK=$SBOPKGTMP/sbopkg_backup_queue.lck
|
||||
|
||||
@ -1216,8 +1212,8 @@ queue_dir_lister() {
|
||||
# takes two arguments - the title and the text of the widget - and makes
|
||||
# the selected item(s) from the listing available as USERQUEUE
|
||||
|
||||
local QFS=$SBOPKGTMP/sbopkg-queue-files-selection
|
||||
local QFM=$SBOPKGTMP/sbopkg-queue-files-menu
|
||||
local QFS=$SBOPKGTMP/sbopkg_queue_files_selection
|
||||
local QFM=$SBOPKGTMP/sbopkg_queue_files_menu
|
||||
|
||||
if [[ -z $(ls -A $QUEUEDIR 2> /dev/null) ]]; then
|
||||
if [[ $DIAG ]]; then
|
||||
@ -1361,7 +1357,6 @@ save_user_queue() {
|
||||
# queue. In that case, show the filename dialog only if there actually is
|
||||
# an active queue, and return silently otherwise.
|
||||
|
||||
local TMPQUEUE=$SBOPKGTMP/sbopkg-tmp-queue
|
||||
local USERQUEUE=$SBOPKGTMP/sbopkg-user-queue
|
||||
local DEFAULT MSG USERQUEUE_NAME i
|
||||
local USERQUEUE_NAME
|
||||
@ -1429,7 +1424,6 @@ edit_build_queue() {
|
||||
# This function deletes items in the build queue.
|
||||
|
||||
local ANSQUEUE=$SBOPKGTMP/sbopkg-ans-queue
|
||||
local TMPQUEUE=$SBOPKGTMP/sbopkg-tmp-queue
|
||||
local REMOVEQUEUE=$SBOPKGTMP/sbopkg-remove-queue
|
||||
local WORKINGQUEUE=$SBOPKGTMP/sbopkg-working-queue
|
||||
local CHOICE REMOVE REMOVED
|
||||
@ -1500,7 +1494,6 @@ add_item_to_queue() {
|
||||
local VERSIONBUILD=$2
|
||||
local ONOFF=$3
|
||||
local BACKUPQUEUE_LOCK=$SBOPKGTMP/sbopkg_backup_queue.lck
|
||||
local TMPQUEUE=$SBOPKGTMP/sbopkg-tmp-queue
|
||||
local USERQUEUE_LOCK=$SBOPKGTMP/sbopkg_user_queue.lck
|
||||
local UPDATEQUEUE=$SBOPKGTMP/sbopkg-update-queue
|
||||
local OLDVER="$(awk '/^'$APP'/{ print $2 }' $TMPQUEUE 2> /dev/null)"
|
||||
@ -1533,8 +1526,6 @@ view_queue() {
|
||||
|
||||
local ANSQUEUE=$SBOPKGTMP/sbopkg-ans-queue
|
||||
local REVERSEDQUEUE=$SBOPKGTMP/sbopkg-reversed-queue
|
||||
local STARTQUEUE=$SBOPKGTMP/sbopkg-start-queue
|
||||
local TMPQUEUE=$SBOPKGTMP/sbopkg-tmp-queue
|
||||
local WORKINGQUEUE=$SBOPKGTMP/sbopkg-working-queue
|
||||
|
||||
empty_queue && return
|
||||
@ -1563,9 +1554,6 @@ view_queue() {
|
||||
fi
|
||||
done < $TMPQUEUE
|
||||
mv $WORKINGQUEUE $TMPQUEUE
|
||||
if [[ $BUILDPKGS == 1 ]]; then
|
||||
mv $ANSQUEUE $STARTQUEUE
|
||||
fi
|
||||
return 0
|
||||
;;
|
||||
1)
|
||||
@ -1670,7 +1658,6 @@ sync_repo() {
|
||||
# This function does the sync with SBo.
|
||||
|
||||
local SYNC_LOCK=$SBOPKGTMP/sbopkg_sync.lck
|
||||
local SBOPKGOUTPUT=$SBOPKGTMP/sbopkg_output
|
||||
|
||||
if [[ $REPO_TOOL == "" ]]; then
|
||||
if [[ $DIAG ]]; then
|
||||
@ -1719,35 +1706,16 @@ sync_repo() {
|
||||
}
|
||||
|
||||
search_package() {
|
||||
# Search for package name and exit if not found. If it is found, populate
|
||||
# various variables with data about the package for displaying information
|
||||
# and building.
|
||||
# Search for package name and return error if not found.
|
||||
|
||||
cd $LOCALREPO/$SLACKVER
|
||||
PKG="$1"
|
||||
PKGPATH=( $(find -type d -mindepth 2 -name "$PKG") )
|
||||
|
||||
if [[ -z $PKGPATH ]]; then
|
||||
if [[ $SINGLE == yes ]]; then
|
||||
echo "ERROR: Package or queuefile \"$PKG\" not found. Exiting." \
|
||||
>&2
|
||||
exit 1
|
||||
fi
|
||||
if [[ $BUILDPKGS == 1 ]]; then
|
||||
echo "ERROR: Package \"$PKG\" not found" >> $PRECHECKLOG
|
||||
echo "ERROR: Package \"$PKG\" not found - skipped" >> $SUMMARYLOG
|
||||
echo >> $PRECHECKLOG
|
||||
echo >> $SUMMARYLOG
|
||||
continue
|
||||
return 1
|
||||
else
|
||||
if [[ $DIAG ]]; then
|
||||
dialog --title "ERROR" --msgbox "Package $PKG not found" 0 0
|
||||
continue
|
||||
else
|
||||
echo "ERROR: Package \"$PKG\" not found." >&2
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
@ -2020,7 +1988,7 @@ get_source() {
|
||||
local BUILD_LOCK=$SBOPKGTMP/sbopkg_build.lck
|
||||
local DLDIR=$SBOPKGTMP/download
|
||||
local PIDLIST=$SBOPKGTMP/sbopkgpidlist
|
||||
local SUMMARYLOG=$SBOPKGTMP/sbopkg_summary
|
||||
local TMPSUMMARYLOG=$SBOPKGTMP/sbopkg-tmp-summarylog
|
||||
local SRCNAME DL FAILURE ANS MD5CHK
|
||||
# Don't pollute the environment with the .info content...
|
||||
local PRGNAM VERSION HOMEPAGE DOWNLOAD MD5SUM MAINTAINER EMAIL APPROVED
|
||||
@ -2042,9 +2010,9 @@ get_source() {
|
||||
mv "$DL" "$SRCDIR/$SRCNAME"
|
||||
else
|
||||
FAILURE=download
|
||||
echo "$PKG:" >> $SUMMARYLOG
|
||||
echo "Download failed." >> $SUMMARYLOG
|
||||
echo >> $SUMMARYLOG
|
||||
echo "$PKG:" >> $TMPSUMMARYLOG
|
||||
echo "Download failed." >> $TMPSUMMARYLOG
|
||||
echo >> $TMPSUMMARYLOG
|
||||
fi
|
||||
cd $SRCDIR
|
||||
rm -rf $DLDIR
|
||||
@ -2055,10 +2023,11 @@ get_source() {
|
||||
if [[ $MD5CHK == $MD5SUM ]]; then
|
||||
echo "OK"
|
||||
else
|
||||
echo "$PKG:" >> $SUMMARYLOG
|
||||
echo "MD5SUM check failed." | tee -a $SUMMARYLOG
|
||||
echo "Expected: $MD5SUM" | tee -a $SUMMARYLOG
|
||||
echo "Found: $MD5CHK" | tee -a $SUMMARYLOG
|
||||
echo >> $TMPSUMMARYLOG
|
||||
echo "$PKG:" >> $TMPSUMMARYLOG
|
||||
echo "MD5SUM check failed." | tee -a $TMPSUMMARYLOG
|
||||
echo "Expected: $MD5SUM" | tee -a $TMPSUMMARYLOG
|
||||
echo "Found: $MD5CHK" | tee -a $TMPSUMMARYLOG
|
||||
# Ask the user what to do with the bad source
|
||||
while :; do
|
||||
cat << EOF
|
||||
@ -2082,7 +2051,7 @@ EOF
|
||||
y* | Y* )
|
||||
MD5SUM=$(tr / _ <<< "$MD5CHK")
|
||||
echo "Keeping the source and continuing." |
|
||||
tee -a $SUMMARYLOG
|
||||
tee -a $TMPSUMMARYLOG
|
||||
break
|
||||
;;
|
||||
* )
|
||||
@ -2100,7 +2069,6 @@ EOF
|
||||
if [[ $FAILURE ]]; then
|
||||
rm -f $PKG.info.build
|
||||
rm -f $PKG.SlackBuild.build
|
||||
if [[ $BUILDPKGS == 1 ]]; then
|
||||
while :; do
|
||||
echo
|
||||
echo "Would you like to continue processing the rest of the"
|
||||
@ -2116,7 +2084,6 @@ EOF
|
||||
* ) echo "Unknown response." ;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
return 2
|
||||
else
|
||||
ln -s "$SRCDIR/$SRCNAME" "$SRCNAME"
|
||||
@ -2303,16 +2270,17 @@ do_install() {
|
||||
install_package() {
|
||||
# Install the package.
|
||||
|
||||
local INSTPKG=$1
|
||||
local OWNER=$(stat -c %U $OUTPUT/$INSTPKG)
|
||||
local GROUP=$(stat -c %G $OUTPUT/$INSTPKG)
|
||||
local INSTDIR=$1
|
||||
local INSTPKG=$2
|
||||
local OWNER=$(stat -c %U $INSTDIR/$INSTPKG)
|
||||
local GROUP=$(stat -c %G $INSTDIR/$INSTPKG)
|
||||
|
||||
if [[ $OWNER != root && $GROUP != root ]]; then
|
||||
crunch_fmt "WARNING: The file $INSTPKG is not set with root:root \
|
||||
permissions! Do you want to proceed? Here is the \
|
||||
output of ls -l:"
|
||||
echo
|
||||
ls -l $OUTPUT/$INSTPKG
|
||||
ls -l $INSTDIR/$INSTPKG
|
||||
echo
|
||||
echo "Press (Y)es to proceed or (N)o to abort."
|
||||
read ANS
|
||||
@ -2322,12 +2290,8 @@ install_package() {
|
||||
* ) echo "Unknown response."; break ;;
|
||||
esac
|
||||
fi
|
||||
if [[ $INSTALLPKGS ]]; then
|
||||
do_install $SB_OUTPUT/*
|
||||
else
|
||||
do_install $OUTPUT/$INSTPKG
|
||||
do_install $INSTDIR/$INSTPKG
|
||||
echo "Done upgrading/installing package."
|
||||
fi
|
||||
}
|
||||
|
||||
error_read() {
|
||||
@ -2360,8 +2324,6 @@ build_package() {
|
||||
|
||||
local PKGPATH=$1
|
||||
local PKGNAME=$2
|
||||
local SB_OUTPUT=$SBOPKGTMP/sbooutput
|
||||
local SUMMARYLOG=$SBOPKGTMP/sbopkg_summary
|
||||
|
||||
echo
|
||||
echo "Building $PKGNAME"
|
||||
@ -2381,6 +2343,7 @@ build_package() {
|
||||
esac
|
||||
|
||||
# Start the actual build
|
||||
echo >> $TMPSUMMARYLOG
|
||||
echo "Building package for $PKGNAME..."
|
||||
( # Run the build in a subshell, to avoid namespace pollution
|
||||
[[ $BUILDOPTIONS ]] && eval "export $BUILDOPTIONS"
|
||||
@ -2395,11 +2358,9 @@ build_package() {
|
||||
# Let's see the result
|
||||
cd $SB_OUTPUT
|
||||
if [ ! -f *.t?z ]; then
|
||||
echo "$PKGNAME:" >> $SUMMARYLOG
|
||||
echo "$PKGNAME:" >> $TMPSUMMARYLOG
|
||||
echo "Error occurred with build. Please check the log." \
|
||||
>> $SUMMARYLOG
|
||||
echo >> $SUMMARYLOG
|
||||
if [[ $BUILDPKGS ]]; then
|
||||
>> $TMPSUMMARYLOG
|
||||
echo
|
||||
echo "Would you like to continue processing the rest of the"
|
||||
echo "build queue or would you like to abort? If this failed"
|
||||
@ -2422,20 +2383,12 @@ build_package() {
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
else
|
||||
echo "Done building package for $PKG."
|
||||
NEWPACKAGE=$(ls -1 *.t?z)
|
||||
echo "$PKGNAME:" >> $SUMMARYLOG
|
||||
echo "Built package: $NEWPACKAGE" >> $SUMMARYLOG
|
||||
echo "$PKGNAME:" >> $TMPSUMMARYLOG
|
||||
echo "Built package: $NEWPACKAGE" >> $TMPSUMMARYLOG
|
||||
echo "Built package: $NEWPACKAGE"
|
||||
if [[ $INSTALLPKGS ]]; then
|
||||
install_package $NEWPACKAGE
|
||||
echo "Done installing/upgrading package for $PKG."
|
||||
echo "Installed package: $NEWPACKAGE" >> $SUMMARYLOG
|
||||
fi
|
||||
mv $SB_OUTPUT/* $OUTPUT/
|
||||
echo >> $SUMMARYLOG
|
||||
fi
|
||||
}
|
||||
|
||||
@ -2448,12 +2401,6 @@ edit_local_slackbuild() {
|
||||
local SHORTPATH=$1
|
||||
local APP=$2
|
||||
|
||||
# FIXME is this check really necessary?
|
||||
if ! check_write $SHORTPATH; then
|
||||
dialog --title "ERROR" --msgbox "You do not have write \
|
||||
permissions on the target directory." 8 30
|
||||
return 1
|
||||
fi
|
||||
if [[ ! -e $SHORTPATH/$APP.SlackBuild.sbopkg ]]; then
|
||||
cp $SHORTPATH/$APP.SlackBuild $SHORTPATH/$APP.SlackBuild.sbopkg
|
||||
fi
|
||||
@ -2469,12 +2416,6 @@ delete_local_slackbuild() {
|
||||
local SHORTPATH=$1
|
||||
local APP=$2
|
||||
|
||||
# FIXME is this check really necessary?
|
||||
if ! check_write $SHORTPATH; then
|
||||
dialog --title "ERROR" --msgbox \
|
||||
"You do not have write permissions on the target directory." 8 30
|
||||
return 1
|
||||
fi
|
||||
# FIXME should be checked on the caller side?
|
||||
if [[ ! -e $SHORTPATH/$APP.SlackBuild.sbopkg ]]; then
|
||||
dialog --title "ERROR" --msgbox \
|
||||
@ -2496,10 +2437,6 @@ pick_slackbuild() {
|
||||
local PKGNAME=$2
|
||||
|
||||
if pick_file SlackBuild $PKGPATH $PKGNAME; then
|
||||
# FIXME this BUILD assignment is a non-obvious side effect, the caller
|
||||
# should do this
|
||||
BUILD=$(egrep -m1 "^BUILD" $PKGPATH/$PKG.SlackBuild.build |
|
||||
sed -e 's/^.*[=-]//;s/\"//;s/[ #}\t].*$//g;s/\"//g')
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
@ -2515,12 +2452,6 @@ edit_local_info() {
|
||||
local SHORTPATH=$1
|
||||
local APP=$2
|
||||
|
||||
# FIXME is this check really necessary?
|
||||
if ! check_write $SHORTPATH; then
|
||||
dialog --title "ERROR" --msgbox "You do not have write \
|
||||
permissions on the target directory." 8 30
|
||||
return 1
|
||||
fi
|
||||
if [[ ! -e $LOCALREPO/$SLACKVER/$CATEGORY/$APP/$APP.info.sbopkg ]]; then
|
||||
cp $SHORTPATH/$APP.info $SHORTPATH/$APP.info.sbopkg
|
||||
fi
|
||||
@ -2536,12 +2467,6 @@ delete_local_info() {
|
||||
local SHORTPATH=$1
|
||||
local APP=$2
|
||||
|
||||
# FIXME is this check really necessary?
|
||||
if ! check_write $SHORTPATH; then
|
||||
dialog --title "ERROR" --msgbox \
|
||||
"You do not have write permissions on the target directory." 8 30
|
||||
return 1
|
||||
fi
|
||||
# FIXME should be checked on the caller side?
|
||||
if [[ ! -e $SHORTPATH/$APP.info.sbopkg ]]; then
|
||||
dialog --title "ERROR" --msgbox \
|
||||
@ -2563,8 +2488,6 @@ pick_info() {
|
||||
local PKGNAME=$2
|
||||
|
||||
if pick_file info $PKGPATH $PKGNAME; then
|
||||
# FIXME the caller should do this
|
||||
. $PKGPATH/$PKGNAME.info.build
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
@ -2583,10 +2506,10 @@ pick_file() {
|
||||
# $3 = the package name
|
||||
# Returns 0 if the user did his choice, 1 if ESC was pressed.
|
||||
|
||||
local FILE=$1
|
||||
FILE=$1
|
||||
local PKGPATH=$2
|
||||
local PKG=$3
|
||||
local PICKFILE=original
|
||||
PICKFILE=original
|
||||
local ANS ITEM
|
||||
|
||||
rm -f $SBOPKGTMP/sbopkg_file_selection $SBOPKGTMP/sbopkg_diff
|
||||
@ -2652,8 +2575,8 @@ pick_file() {
|
||||
crunch_fmt "A local $FILE file for $PKG was found in \
|
||||
addition to the original $FILE file."
|
||||
echo "Which one would you like to use?"
|
||||
crunch_fmt "Please enter 'O' for original, 'L' for local, \
|
||||
'D' to view a diff of the two, or 'C' to cancel."
|
||||
echo
|
||||
crunch_fmt "(O)riginal, (L)ocal, (D)iff, (C)ancel:"
|
||||
read ANS
|
||||
case $ANS in
|
||||
o* | O* )
|
||||
@ -2687,8 +2610,6 @@ pick_file() {
|
||||
elif [[ $PICKFILE == local ]]; then
|
||||
cp $PKGPATH/$PKG.$FILE.sbopkg $PKGPATH/$PKG.$FILE.build
|
||||
fi
|
||||
echo "Using $PICKFILE $FILE file" >> $SBOPKGTMP/sbopkg_tmp_prechecklog
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
@ -2746,102 +2667,77 @@ use_options() {
|
||||
}
|
||||
|
||||
process_queue() {
|
||||
# Iterate through the process queue to build, and optionally
|
||||
# install, the selected packages.
|
||||
# The package(s) to be built are listed in $SBOPKGTMP/sbopkg-start-queue.
|
||||
# $1 = if set, assume that we're a building a queue and perform some
|
||||
# additional checks.
|
||||
# FIXME This is a horrible interface...
|
||||
local QUEUETYPE=$1 # build|buildinstall
|
||||
|
||||
local BUILDPKGS=$1
|
||||
# TODO Some of these should really be global...
|
||||
local SBOPKGOUTPUT=$SBOPKGTMP/sbopkg_output
|
||||
local SBOPKGTMPOUTPUT=$SBOPKGTMP/sbopkg_tmpoutput
|
||||
local STARTQUEUE=$SBOPKGTMP/sbopkg-start-queue
|
||||
local FINALQUEUE=$SBOPKGTMP/sbopkg-final-queue
|
||||
local PRECHECKLOG=$SBOPKGTMP/sbopkg_precheck_log
|
||||
local SUMMARYLOG=$SBOPKGTMP/sbopkg_summary
|
||||
local TMPPRECHECKLOG=$SBOPKGTMP/sbopkg_tmp_prechecklog
|
||||
local PKG SINGLE PKGPATH CHKBUILD ANS
|
||||
# need to check the following before uncommenting
|
||||
#local PKG PKGBUILD SINGLE PKGPATH CHKBUILD ANS
|
||||
local CHKBUILD ANS
|
||||
|
||||
rm -f $SBOPKGTMPOUTPUT $FINALQUEUE $PRECHECKLOG $SUMMARYLOG $PRECHECKLOG
|
||||
if [[ $DIAG && $BUILDPKGS ]]; then
|
||||
# If there are no packages queued to be built, exit now
|
||||
empty_queue && return
|
||||
# Show the queued packages
|
||||
view_queue
|
||||
fi
|
||||
# Ask the user if he also wants to install the built packages
|
||||
if [[ $DIAG ]]; then
|
||||
dialog --title "Install Package(s)" --yes-label "Build" \
|
||||
--no-label "Build and Install" --yesno \
|
||||
"$(crunch "Would you like to build the package(s) only, or \
|
||||
build and install the package(s)? (Press ESC to exit).")" 8 50
|
||||
case $? in
|
||||
255|-1 ) # The user pressed ESC
|
||||
return 0
|
||||
;;
|
||||
1 ) # Build and install
|
||||
INSTALLPKGS=1
|
||||
;;
|
||||
#0 ) # Build only (there's nothing to do in this case)
|
||||
esac
|
||||
fi
|
||||
> $SUMMARYLOG
|
||||
echo >> $SUMMARYLOG
|
||||
echo "******************************************" >> $SUMMARYLOG
|
||||
echo "PACKAGE BUILDING/INSTALLATION SUMMARY LOG" >> $SUMMARYLOG
|
||||
echo "Using the $REPO_DESC" >> $SUMMARYLOG
|
||||
echo >> $SUMMARYLOG
|
||||
if [[ $BUILDPKGS ]]; then
|
||||
> $PRECHECKLOG
|
||||
echo >> $PRECHECKLOG
|
||||
echo "******************************************" >> $PRECHECKLOG
|
||||
echo "PACKAGE BUILDING/INSTALLATION PRECHECK LOG" >> $PRECHECKLOG
|
||||
echo "Using the $REPO_DESC" >> $PRECHECKLOG
|
||||
echo >> $PRECHECKLOG
|
||||
rm -f $TMPLOG $TMPBUILDLOG $TMPSUMMARYLOG $FINALQUEUE
|
||||
# Start the precheck
|
||||
echo >> $TMPLOG
|
||||
echo "++++++++++++++++++++++++++++++++++++++++++" >> $TMPLOG
|
||||
echo " New queue process started on" >> $TMPLOG
|
||||
echo " $(date)" >> $TMPLOG
|
||||
echo "++++++++++++++++++++++++++++++++++++++++++" >> $TMPLOG
|
||||
echo >> $TMPLOG
|
||||
echo "------------------------------------------" >> $TMPLOG
|
||||
echo "PACKAGE BUILDING/INSTALLATION PRECHECK LOG" >> $TMPLOG
|
||||
echo "Using the $REPO_DESC" >> $TMPLOG
|
||||
echo >> $TMPLOG
|
||||
for CHKBUILD in $(< $STARTQUEUE); do
|
||||
unset PKG
|
||||
# FIXME This SINGLE assignment should be a parameter to
|
||||
# search_package(). Better yet, deciding what to do if the
|
||||
# package is not found should be dealt with by the caller.
|
||||
if [[ $(wc -l < $STARTQUEUE) == 1 ]]; then
|
||||
SINGLE=yes
|
||||
# FIXME: This section still needs to be reviewed
|
||||
unset PKG PKGPATH PKGNAME VERSION BUILD PICKFILE FILE
|
||||
if ! search_package $CHKBUILD; then
|
||||
echo "$CHKBUILD not found!" >> $TMPLOG
|
||||
continue
|
||||
else
|
||||
echo $CHKBUILD >> $FINALQUEUE
|
||||
fi
|
||||
search_package $CHKBUILD
|
||||
if ! pick_info $PKGPATH $CHKBUILD; then
|
||||
rm -f $PKGPATH/$PKG*.build
|
||||
return 0
|
||||
else
|
||||
. $PKGPATH/$PKG.info.build
|
||||
echo "Using $PICKFILE $FILE file" >> $TMPLOG-info
|
||||
fi
|
||||
if ! pick_slackbuild $PKGPATH $CHKBUILD; then
|
||||
rm -f $PKGPATH/$PKG*.build
|
||||
return 0
|
||||
fi
|
||||
use_options $PKGPATH $CHKBUILD
|
||||
echo $CHKBUILD >> $FINALQUEUE
|
||||
echo "Found $CHKBUILD $VERSION-$BUILD" >> $PRECHECKLOG
|
||||
if [[ $BUILDOPTIONS ]]; then
|
||||
echo "Options: $BUILDOPTIONS" >> $PRECHECKLOG
|
||||
else
|
||||
echo "Options: None" >> $PRECHECKLOG
|
||||
BUILD=$(egrep -m1 "^BUILD" $PKGPATH/$PKG.SlackBuild.build |
|
||||
sed -e 's/^.*[=-]//;s/\"//;s/[ #}\t].*$//g;s/\"//g')
|
||||
echo "Using $PICKFILE $FILE file" >> $TMPLOG-SB
|
||||
fi
|
||||
cat $TMPPRECHECKLOG >> $PRECHECKLOG
|
||||
rm -f $TMPPRECHECKLOG
|
||||
echo >> $PRECHECKLOG
|
||||
echo "Found $CHKBUILD $VERSION-$BUILD" >> $TMPLOG
|
||||
cat $TMPLOG-info >> $TMPLOG
|
||||
cat $TMPLOG-SB >> $TMPLOG
|
||||
rm $TMPLOG-info $TMPLOG-SB
|
||||
use_options $PKGPATH $CHKBUILD
|
||||
if [[ $BUILDOPTIONS ]]; then
|
||||
echo "Options: $BUILDOPTIONS" >> $TMPLOG
|
||||
else
|
||||
echo "Options: None" >> $TMPLOG
|
||||
fi
|
||||
echo >> $TMPLOG
|
||||
done
|
||||
echo "******************************************" >> $PRECHECKLOG
|
||||
echo "------------------------------------------" >> $TMPLOG
|
||||
if [[ ! -e $FINALQUEUE ]]; then
|
||||
echo "No valid file names in the queue. Exiting."
|
||||
cleanup
|
||||
exit 1
|
||||
fi
|
||||
if [[ $DIAG ]]; then
|
||||
dialog --title "Pre-Check Log" --ok-label "Start Build" \
|
||||
--extra-button --extra-label "Back" --no-cancel \
|
||||
--textbox $PRECHECKLOG 0 0
|
||||
--textbox $TMPLOG 0 0
|
||||
if [[ $? != 0 ]]; then
|
||||
rm -f $PKGPATH/$PKG*.build
|
||||
rm -f $STARTQUEUE $FINALQUEUE $PRECHECKLOG $SUMMARYLOG
|
||||
return 0
|
||||
fi
|
||||
else
|
||||
while :; do
|
||||
cat $PRECHECKLOG
|
||||
cat $TMPLOG
|
||||
echo
|
||||
echo "Pre-check complete."
|
||||
echo
|
||||
@ -2856,11 +2752,7 @@ process_queue() {
|
||||
break
|
||||
;;
|
||||
n* | N* )
|
||||
# FIXME Again, the fact that in this case the program
|
||||
# terminates is a caller's decision.
|
||||
rm -f $PKGPATH/$PKG*.build
|
||||
cleanup
|
||||
exit 0
|
||||
return 0
|
||||
;;
|
||||
* )
|
||||
echo "Unknown response."
|
||||
@ -2869,56 +2761,97 @@ process_queue() {
|
||||
done
|
||||
echo
|
||||
fi
|
||||
else
|
||||
for CHKBUILD in $(< $STARTQUEUE); do
|
||||
search_package $CHKBUILD
|
||||
if ! pick_info $PKGPATH $CHKBUILD; then
|
||||
rm -f $PKGPATH/$PKG*.build
|
||||
return 1
|
||||
fi
|
||||
if ! pick_slackbuild $PKGPATH $CHKBUILD; then
|
||||
rm -f $PKGPATH/$PKG*.build
|
||||
return 1
|
||||
fi
|
||||
use_options $PKGPATH $CHKBUILD
|
||||
echo $CHKBUILD >> $FINALQUEUE
|
||||
done
|
||||
if [[ $KEEPLOG ]]; then
|
||||
cat $TMPLOG >> $LOGFILE
|
||||
fi
|
||||
rm $TMPLOG
|
||||
# Okay, precheck done, now start the actual queue processing (build or
|
||||
# build+install)
|
||||
> $SBOPKGTMP/sbopkg_build.lck
|
||||
for PKGBUILD in $(< $FINALQUEUE); do
|
||||
search_package $PKGBUILD
|
||||
if ! search_package $PKGBUILD; then
|
||||
echo "$CHKBUILD not found!" >> $TMPLOG
|
||||
continue
|
||||
fi
|
||||
if [[ -f $SBOPKGTMP/sbopkg_build.lck ]]; then
|
||||
build_package $PKGPATH $PKGBUILD 2>&1 | tee $SBOPKGTMPOUTPUT ||
|
||||
build_package $PKGPATH $PKGBUILD 2>&1 | tee $TMPBUILDLOG ||
|
||||
break
|
||||
cat $SBOPKGTMPOUTPUT >> $SBOPKGOUTPUT
|
||||
if [[ $QUEUETYPE == "buildinstall" ]]; then
|
||||
if [[ $SB_OUTPUT/*.t?z ]]; then
|
||||
#install_package $SB_OUTPUT *.t?z
|
||||
cd $SB_OUTPUT
|
||||
NEWPACKAGE=$(ls -1t *.t?z | head -n1)
|
||||
install_package $SB_OUTPUT $NEWPACKAGE
|
||||
echo "Installed package: $NEWPACKAGE" >> $TMPSUMMARYLOG
|
||||
fi
|
||||
fi
|
||||
if [[ $SB_OUTPUT/*.t?z ]]; then
|
||||
mv $SB_OUTPUT/*.t?z $OUTPUT/
|
||||
fi
|
||||
else
|
||||
echo "$PKG:" >> $SUMMARYLOG
|
||||
echo "Not processed - build queue aborted." >> $SUMMARYLOG
|
||||
echo >> $SUMMARYLOG
|
||||
echo "$PKG:" >> $TMPSUMMARYLOG
|
||||
echo "Not processed - build queue aborted." >> $TMPSUMMARYLOG
|
||||
echo >> $TMPSUMMARYLOG
|
||||
fi
|
||||
done
|
||||
rm -f $SBOPKGTMP/sbopkg_build.lck
|
||||
echo "******************************************" >> $SUMMARYLOG
|
||||
cat $SUMMARYLOG
|
||||
if [[ $DIAG ]]; then
|
||||
read -n 1 -p "Press any key to continue."
|
||||
if [[ $KEEPLOG ]]; then
|
||||
cat $TMPBUILDLOG >> $LOGFILE
|
||||
rm $TMPBUILDLOG
|
||||
fi
|
||||
if [[ $BUILDPKGS && -f $SBOPKGTMP/sbopkg-tmp-queue ]]; then
|
||||
rm -f $SBOPKGTMP/sbopkg_build.lck
|
||||
echo >> $TMPLOG
|
||||
echo "------------------------------------------" >> $TMPLOG
|
||||
echo "PACKAGE BUILDING/INSTALLATION SUMMARY LOG" >> $TMPLOG
|
||||
echo "Using the $REPO_DESC" >> $TMPLOG
|
||||
cat $TMPSUMMARYLOG >> $TMPLOG
|
||||
rm $TMPSUMMARYLOG
|
||||
echo >> $TMPLOG
|
||||
echo "------------------------------------------" >> $TMPLOG
|
||||
echo >> $TMPLOG
|
||||
echo "++++++++++++++++++++++++++++++++++++++++++" >> $TMPLOG
|
||||
echo " Queue process complete" >> $TMPLOG
|
||||
echo "++++++++++++++++++++++++++++++++++++++++++" >> $TMPLOG
|
||||
echo >> $TMPLOG
|
||||
cat $TMPLOG
|
||||
read -n 1 -p "Press any key to continue."
|
||||
if [[ $KEEPLOG ]]; then
|
||||
cat $TMPLOG >> $LOGFILE
|
||||
fi
|
||||
rm $TMPLOG
|
||||
if [[ -f $TMPQUEUE ]]; then
|
||||
dialog --title "Clear Queue?" --yes-label "Keep" --no-label \
|
||||
"Clear" --yesno "$(crunch "Would you like to keep the build \
|
||||
queue or would you like to clear it?")" 8 35
|
||||
if [[ $? == 1 ]]; then
|
||||
rm $SBOPKGTMP/sbopkg-tmp-queue
|
||||
rm $TMPQUEUE
|
||||
dialog --title "Done" --msgbox \
|
||||
"The build queue has been cleared." 8 35
|
||||
fi
|
||||
fi
|
||||
if [[ $KEEPLOG ]]; then
|
||||
[[ -f $PRECHECKLOG ]] && cat $PRECHECKLOG >> $LOGFILE
|
||||
[[ -f $SBOPKGOUTPUT ]] && cat $SBOPKGOUTPUT >> $LOGFILE
|
||||
cat $SUMMARYLOG >> $LOGFILE
|
||||
fi
|
||||
rm -f $SBOPKGOUTPUT $STARTQUEUE $FINALQUEUE $PRECHECKLOG $SUMMARYLOG
|
||||
rm -f $SBOPKGTMP/sbopkg-ans-queue
|
||||
rm -f $FINALQUEUE
|
||||
}
|
||||
|
||||
start_dialog_queue() {
|
||||
# This kick-starts the queue processing when using the dialog interface.
|
||||
# When using cli, the -b or -i option will determine whether we build or
|
||||
# build and install.
|
||||
|
||||
dialog --title "Install Package(s)" --yes-label "Build" \
|
||||
--no-label "Build and Install" --yesno \
|
||||
"$(crunch "Would you like to build the package(s) only, or \
|
||||
build and install the package(s)? (Press ESC to exit).")" 8 50
|
||||
case $? in
|
||||
255|-1 ) # The user pressed ESC
|
||||
return 0
|
||||
;;
|
||||
1 ) # Build and install
|
||||
process_queue buildinstall
|
||||
;;
|
||||
0 ) # Build only
|
||||
process_queue build
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
check_for_latest() {
|
||||
@ -3047,13 +2980,17 @@ queue_menu() {
|
||||
DEFAULTITEM=$(< $ANSWERFILE)
|
||||
|
||||
case "$DEFAULTITEM" in
|
||||
"View") view_queue ;;
|
||||
"View") #empty_queue && return
|
||||
view_queue ;;
|
||||
"Load") load_user_queue ;;
|
||||
"Save") save_user_queue ;;
|
||||
"Edit") edit_build_queue ;;
|
||||
"Rename") rename_user_queue ;;
|
||||
"Delete") delete_user_queue ;;
|
||||
"Process") process_queue 1 ;;
|
||||
"Process") #empty_queue && return
|
||||
view_queue
|
||||
cp $SBOPKGTMP/sbopkg-ans-queue $STARTQUEUE
|
||||
start_dialog_queue ;;
|
||||
*) break ;;
|
||||
esac
|
||||
done
|
||||
@ -3105,6 +3042,7 @@ cleanup() {
|
||||
rm -f $SBOPKGTMP/sbopkgpidlist
|
||||
rm -rf $SBOPKGTMP/sbooutput
|
||||
rm -f $SBOPKGTMP/sbopkg-*-queue
|
||||
rm -f $SBOPKGTMP/sbopkg-tmp-*
|
||||
rm -f $PIDFILE
|
||||
|
||||
# Back to the directory the user started sbopkg in
|
||||
@ -3309,8 +3247,6 @@ unset DIAG # When set, run in dialog mode (instead of CLI mode)
|
||||
unset QUIET # When set, suppress less important output in CLI mode
|
||||
unset ON_ERROR # The policy used in error conditions (see "-e")
|
||||
unset LAST_USER_QUEUE_ON_DISK # The name of the last loaded/saved user queue
|
||||
unset BUILDPKGS # TODO
|
||||
unset INSTALLPKGS # TODO
|
||||
unset BUILDOPTIONS # TODO
|
||||
unset SBOPKG_RENAMES_D # Directory containing files tracking package renames
|
||||
# SBOPKG_CONF # Configuration file
|
||||
@ -3345,7 +3281,7 @@ while getopts ":b:cd:e:f:g:hi:lopqrs:uv:" OPT; do
|
||||
case $OPT in
|
||||
b ) # Build
|
||||
BFLAG=1
|
||||
BUILDPKGS=1
|
||||
TYPE="build"
|
||||
BUILD="$OPTARG"
|
||||
unset DIAG
|
||||
;;
|
||||
@ -3369,8 +3305,7 @@ while getopts ":b:cd:e:f:g:hi:lopqrs:uv:" OPT; do
|
||||
;;
|
||||
i ) # Build and install
|
||||
IFLAG=1
|
||||
BUILDPKGS=1
|
||||
INSTALLPKGS=1
|
||||
TYPE="buildinstall"
|
||||
BUILD="$OPTARG"
|
||||
unset DIAG
|
||||
;;
|
||||
@ -3464,6 +3399,14 @@ fi
|
||||
|
||||
# Check for a good config file and set initial variables
|
||||
config_check
|
||||
STARTQUEUE=$SBOPKGTMP/sbopkg-start-queue
|
||||
TMPLOG=$SBOPKGTMP/sbopkg_tmplog
|
||||
TMPQUEUE=$SBOPKGTMP/sbopkg-tmp-queue
|
||||
FINALQUEUE=$SBOPKGTMP/sbopkg-final-queue
|
||||
SB_OUTPUT=$SBOPKGTMP/sbooutput
|
||||
SBOPKGOUTPUT=$SBOPKGTMP/sbopkg_output
|
||||
TMPBUILDLOG=$SBOPKGTMP/sbopkg-tmp-buildlog
|
||||
TMPSUMMARYLOG=$SBOPKGTMP/sbopkg-tmp-summarylog
|
||||
|
||||
# Change $SLACKVER if set manually using cli -v
|
||||
if [[ $VERSION ]]; then
|
||||
@ -3494,11 +3437,22 @@ else
|
||||
for PKGBUILD in $BUILD; do
|
||||
if [[ -r $QUEUEDIR/$PKGBUILD ]]; then
|
||||
# Add an entire queue
|
||||
CLIQUEUEFILE=$PKGBUILD
|
||||
cp $QUEUEDIR/$PKGBUILD $CLIQUEUE
|
||||
else
|
||||
if search_package $PKGBUILD; then
|
||||
# Add a single package
|
||||
echo $PKGBUILD > $CLIQUEUE
|
||||
echo $PKGBUILD >> $CLIQUEUE
|
||||
else
|
||||
crunch_fmt "Queuefile or package $PKGBUILD not found - \
|
||||
skipping."
|
||||
echo
|
||||
fi
|
||||
fi
|
||||
done
|
||||
if [[ ! -e $CLIQUEUE ]]; then
|
||||
echo "No valid queuefile or package name given. Exiting."
|
||||
cleanup
|
||||
exit 1
|
||||
fi
|
||||
# Reading from $CLIQUEUE...
|
||||
while read PICK; do
|
||||
@ -3507,10 +3461,9 @@ else
|
||||
echo $PICK_NAME >> $SBOPKGTMP/sbopkg-start-queue
|
||||
fi
|
||||
done < $CLIQUEUE
|
||||
done
|
||||
rm -f $CLIQUEUE
|
||||
unset CLIQUEUE
|
||||
process_queue $BUILDPKGS
|
||||
process_queue $TYPE
|
||||
fi
|
||||
|
||||
if [[ $CHK_UPDATES ]]; then
|
||||
|
Loading…
Reference in New Issue
Block a user