mirror of
https://github.com/sbopkg/sbopkg
synced 2024-11-09 19:50:25 +03:00
sqg: Set alternative output.
Fixed #13. Signed-off-by: Willy Sudiarto Raharjo <willysr@sbopkg.org>
This commit is contained in:
parent
afddeb52f6
commit
fe264c391e
@ -62,13 +62,15 @@ Options are:
|
|||||||
Multiple packages can be passed with quotes,
|
Multiple packages can be passed with quotes,
|
||||||
e.g. -p "pkg1 pkg2".
|
e.g. -p "pkg1 pkg2".
|
||||||
Packages with an empty REQUIRES= line will be skipped unless
|
Packages with an empty REQUIRES= line will be skipped unless
|
||||||
SKIP_EMPTY is uncommented at the top of the script.
|
SKIP_EMPTY is uncommented in sqg script.
|
||||||
Package names are case-sensitive.
|
Package names are case-sensitive.
|
||||||
-a Builds queuefiles for all packages.
|
-a Builds queuefiles for all packages.
|
||||||
-j Number of concurrent queuefile generation processes.
|
-j Number of concurrent queuefile generation processes.
|
||||||
This could heavily raise disk I/O so use with care.
|
This could heavily raise disk I/O so use with care.
|
||||||
Requires: GNU parallel
|
Requires: GNU parallel
|
||||||
Default: 1
|
Default: 1
|
||||||
|
-o Save QUEUE(s) to custom.sqf.
|
||||||
|
This could be useful to create custom queue file.
|
||||||
|
|
||||||
This script will overwrite existing queuefiles in \$QUEUEDIR so back up any
|
This script will overwrite existing queuefiles in \$QUEUEDIR so back up any
|
||||||
existing queuefile(s) or local modifications. Check the top of the script for
|
existing queuefile(s) or local modifications. Check the top of the script for
|
||||||
@ -166,6 +168,7 @@ build_queuefile () {
|
|||||||
local REPO_DIR="$1"
|
local REPO_DIR="$1"
|
||||||
local QUEUEDIR="$2"
|
local QUEUEDIR="$2"
|
||||||
local PRGNAM="$3"
|
local PRGNAM="$3"
|
||||||
|
local CUSTOM_QUEUE="$4"
|
||||||
local OLDFILE=$QUEUEDIR/$PRGNAM.sqf
|
local OLDFILE=$QUEUEDIR/$PRGNAM.sqf
|
||||||
local QUEUEFILE=$QUEUEDIR/$PRGNAM.sqf.tmp
|
local QUEUEFILE=$QUEUEDIR/$PRGNAM.sqf.tmp
|
||||||
local CATFILE=$QUEUEDIR/$PRGNAM.tmp.sqf
|
local CATFILE=$QUEUEDIR/$PRGNAM.tmp.sqf
|
||||||
@ -175,9 +178,17 @@ build_queuefile () {
|
|||||||
parse_queuefile_requires "$REPO_DIR" "$PRGNAM" "$QUEUEFILE"
|
parse_queuefile_requires "$REPO_DIR" "$PRGNAM" "$QUEUEFILE"
|
||||||
tac $QUEUEFILE > $CATFILE
|
tac $QUEUEFILE > $CATFILE
|
||||||
if cmp -s "$CATFILE" "$OLDFILE"; then
|
if cmp -s "$CATFILE" "$OLDFILE"; then
|
||||||
|
if [ ! -z $CUSTOM_QUEUE ]; then
|
||||||
|
cat $CATFILE >> $QUEUEDIR/$CUSTOM_QUEUE.sqf
|
||||||
|
fi
|
||||||
rm $QUEUEFILE $CATFILE
|
rm $QUEUEFILE $CATFILE
|
||||||
else
|
else
|
||||||
mv $CATFILE $OLDFILE
|
if [ ! -z $CUSTOM_QUEUE ]; then
|
||||||
|
cat $CATFILE >> $QUEUEDIR/$CUSTOM_QUEUE.sqf
|
||||||
|
rm $CATFILE
|
||||||
|
else
|
||||||
|
mv $CATFILE $OLDFILE
|
||||||
|
fi
|
||||||
rm $QUEUEFILE
|
rm $QUEUEFILE
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -189,12 +200,16 @@ execute_build () {
|
|||||||
local REPO_DIR="$1"
|
local REPO_DIR="$1"
|
||||||
local QUEUEDIR="$2"
|
local QUEUEDIR="$2"
|
||||||
local PKGS="$3"
|
local PKGS="$3"
|
||||||
local ALL=${4:-"no"}
|
local ALL="${4:-no}"
|
||||||
local JOBS=${5:-1}
|
local JOBS="${5:-1}"
|
||||||
|
local CUSTOM_QUEUE="${6:-}"
|
||||||
local PKGSNEW=()
|
local PKGSNEW=()
|
||||||
local VERBOSE="no"
|
local VERBOSE="no"
|
||||||
local PKG INFOPATH
|
local PKG INFOPATH
|
||||||
|
|
||||||
|
# make sure the custom queue is empty
|
||||||
|
rm -f $QUEUEDIR/custom.sqf
|
||||||
|
|
||||||
if [ "$ALL" == "yes" ]; then
|
if [ "$ALL" == "yes" ]; then
|
||||||
printf "Processing all SlackBuilds in the $REPO_SUBPATH repository..."
|
printf "Processing all SlackBuilds in the $REPO_SUBPATH repository..."
|
||||||
PKGSNEW=($(find "$REPO_DIR" -name *.info -print0 | xargs -r0))
|
PKGSNEW=($(find "$REPO_DIR" -name *.info -print0 | xargs -r0))
|
||||||
@ -218,11 +233,13 @@ execute_build () {
|
|||||||
printf '%s\n' "${PKGSNEW[@]}" | \
|
printf '%s\n' "${PKGSNEW[@]}" | \
|
||||||
parallel --eta --will-cite --jobs $JOBS \
|
parallel --eta --will-cite --jobs $JOBS \
|
||||||
/usr/libexec/sbopkg/sqg/sqg-build-queuefile \
|
/usr/libexec/sbopkg/sqg/sqg-build-queuefile \
|
||||||
"$REPO_DIR" "$QUEUEDIR" {} "$SKIP_EMPTY" $VERBOSE
|
"$REPO_DIR" "$QUEUEDIR" {} "$SKIP_EMPTY" "$VERBOSE" \
|
||||||
|
"$CUSTOM_QUEUE" "custom"
|
||||||
else
|
else
|
||||||
for PKG in "${PKGSNEW[@]}"; do
|
for PKG in "${PKGSNEW[@]}"; do
|
||||||
/usr/libexec/sbopkg/sqg/sqg-build-queuefile \
|
/usr/libexec/sbopkg/sqg/sqg-build-queuefile \
|
||||||
"$REPO_DIR" "$QUEUEDIR" "$PKG" "$SKIP_EMPTY" $VERBOSE
|
"$REPO_DIR" "$QUEUEDIR" "$PKG" "$SKIP_EMPTY" "$VERBOSE" \
|
||||||
|
"$CUSTOM_QUEUE" "custom"
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -6,8 +6,9 @@
|
|||||||
REPO_DIR="$1"
|
REPO_DIR="$1"
|
||||||
QUEUEDIR="$2"
|
QUEUEDIR="$2"
|
||||||
INFO="$3"
|
INFO="$3"
|
||||||
SKIP_EMPTY=${4:-""}
|
SKIP_EMPTY="${4:-}"
|
||||||
VERBOSE=${5:-"no"}
|
VERBOSE="${5:-no}"
|
||||||
|
CUSTOM_QUEUE="${6}"
|
||||||
|
|
||||||
. $INFO
|
. $INFO
|
||||||
|
|
||||||
@ -24,5 +25,5 @@ if [ "$VERBOSE" == "yes" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ! -z $REQUIRES || $SKIP_EMPTY == "NO" ]]; then
|
if [[ ! -z $REQUIRES || $SKIP_EMPTY == "NO" ]]; then
|
||||||
build_queuefile "$REPO_DIR" "$QUEUEDIR" "$PRGNAM"
|
build_queuefile "$REPO_DIR" "$QUEUEDIR" "$PRGNAM" "$CUSTOM_QUEUE"
|
||||||
fi
|
fi
|
||||||
|
@ -54,14 +54,16 @@ SCRIPT=${0##*/}
|
|||||||
OPT_JOBS=1
|
OPT_JOBS=1
|
||||||
OPT_ALL="no"
|
OPT_ALL="no"
|
||||||
OPT_PACKAGES=""
|
OPT_PACKAGES=""
|
||||||
|
OPT_OUTPUT=""
|
||||||
|
|
||||||
sanity_checks
|
sanity_checks
|
||||||
|
|
||||||
while getopts "ap:j:h" OPT; do
|
while getopts "ap:j:ho" OPT; do
|
||||||
case $OPT in
|
case $OPT in
|
||||||
a ) OPT_ALL="yes" ;;
|
a ) OPT_ALL="yes" ;;
|
||||||
p ) OPT_PACKAGES=$OPTARG ;;
|
p ) OPT_PACKAGES=$OPTARG ;;
|
||||||
j ) get_jobs "$OPTARG"; OPT_JOBS=$?; ;;
|
j ) get_jobs "$OPTARG"; OPT_JOBS=$?; ;;
|
||||||
|
o ) OPT_OUTPUT=1 ;;
|
||||||
h ) usage $SCRIPT; exit 0; ;;
|
h ) usage $SCRIPT; exit 0; ;;
|
||||||
? ) exit 1; ;;
|
? ) exit 1; ;;
|
||||||
esac
|
esac
|
||||||
@ -73,7 +75,11 @@ if [ $OPTIND -eq 1 ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
execute_build "$REPO_DIR" "$QUEUEDIR" "$OPT_PACKAGES" "$OPT_ALL" $OPT_JOBS
|
if [ -z $OPT_OUTPUT ]; then
|
||||||
|
execute_build "$REPO_DIR" "$QUEUEDIR" "$OPT_PACKAGES" "$OPT_ALL" $OPT_JOBS
|
||||||
|
else
|
||||||
|
execute_build "$REPO_DIR" "$QUEUEDIR" "$OPT_PACKAGES" "$OPT_ALL" $OPT_JOBS "$OPT_OUTPUT"
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Done."
|
echo "Done."
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
SBOPKG NEWS
|
SBOPKG NEWS
|
||||||
|
|
||||||
sbopkg-dev (2017-06-15 09:13:00 UTC)
|
sbopkg-dev (2017-06-18 01:40:00 UTC)
|
||||||
FEATURES
|
FEATURES
|
||||||
* sqg: Parallelize building of single and all packages by option -j.
|
* sqg: Parallelize building of single and all packages by option -j.
|
||||||
Requires GNU Parallel.
|
Requires GNU Parallel.
|
||||||
@ -9,6 +9,10 @@ sbopkg-dev (2017-06-15 09:13:00 UTC)
|
|||||||
This will reduce queue generation time significantly when
|
This will reduce queue generation time significantly when
|
||||||
invoked with -j N+1 (N: Number of cores)
|
invoked with -j N+1 (N: Number of cores)
|
||||||
Patch by Marcel Saegebarth.
|
Patch by Marcel Saegebarth.
|
||||||
|
* sqg: Generate one queue file for multiple programs by option -o.
|
||||||
|
The output is fixed as custom.sqf.
|
||||||
|
You can then run sbopkg -i custom to install all packages+deps.
|
||||||
|
Feature Request by Jeremy/bassmadrigal (Fixed #13).
|
||||||
|
|
||||||
MODIFICATIONS
|
MODIFICATIONS
|
||||||
* bash-completion: Complete -i and -b when git repo is used
|
* bash-completion: Complete -i and -b when git repo is used
|
||||||
|
Loading…
Reference in New Issue
Block a user