fix and improve

This commit is contained in:
emmett1
2019-12-31 15:30:01 +08:00
parent aa52c35238
commit 482e8a894b
2 changed files with 113 additions and 170 deletions

View File

@@ -200,7 +200,7 @@ run_build() {
pushd $SRC >/dev/null
(set -e -x; build)
(set -e -x; build 2>&1)
if [ $? != 0 ]; then
msgerr "Build '$name-$version-$release' failed."
@@ -299,8 +299,11 @@ backupconf() {
packaging() {
local FILE f
for f in ${INCLUDEINPKG[@]}; do
[ -f $f ] && install -m644 $f $PKG/.pkg$f
for FILE in ${INCLUDEINPKG[@]}; do
if [ -f $FILE ]; then
install -m644 $FILE $PKG/.pkg$FILE
addtotar+=(.pkg$FILE)
fi
done
pushd $PKG >/dev/null
@@ -316,12 +319,6 @@ packaging() {
backupconf
fi
for FILE in ${INCLUDEINPKG[@]}; do
if [ -f .pkg$FILE ]; then
addtotar+=(.pkg$FILE)
fi
done
[ "$FORCE_REBUILD" ] && rm -f "$PACKAGE_DIR/$PKGNAME"
case $COMPRESSION_MODE in
@@ -338,9 +335,8 @@ packaging() {
fi
tar -tvf $PACKAGE_DIR/$PKGNAME | sort -k 6
pkgsize="$(ls -lh $PACKAGE_DIR/$PKGNAME | awk '{print $5}')"
msg "Successfully created package '$PKGNAME'. (${pkgsize})"
msg "Successfully created package '$PKGNAME'. ($(ls -lh $PACKAGE_DIR/$PKGNAME | awk '{print $5}'))"
popd >/dev/null
[ -f .pkgfiles ] || generate_pkgfiles
@@ -419,14 +415,14 @@ set_options() {
!emptydirs) KEEP_EMPTYDIR=0;;
strip) STRIP_BINARY=1 ;;
!strip) STRIP_BINARY=0 ;;
zipman) ZIP_MAN=1 ;;
!zipman) ZIP_MAN=0 ;;
buildflags) BUILD_FLAGS=1 ;;
!buildflags) BUILD_FLAGS=0 ;;
makeflags) MAKE_FLAGS=1 ;;
!makeflags) MAKE_FLAGS=0 ;;
mdsum) CHECK_MDSUM=1 ;;
!mdsum) CHECK_MDSUM=0 ;;
zipman) ZIP_MAN=1 ;;
!zipman) ZIP_MAN=0 ;;
buildflags) BUILD_FLAGS=1 ;;
!buildflags) BUILD_FLAGS=0 ;;
makeflags) MAKE_FLAGS=1 ;;
!makeflags) MAKE_FLAGS=0 ;;
mdsum) CHECK_MDSUM=1 ;;
!mdsum) CHECK_MDSUM=0 ;;
esac
done
}
@@ -555,17 +551,9 @@ main() {
exit 1
fi
if [ "$CUSTOM_SOURCE_DIR" ]; then
SOURCE_DIR="$CUSTOM_SOURCE_DIR"
fi
if [ "$CUSTOM_PACKAGE_DIR" ]; then
PACKAGE_DIR="$CUSTOM_PACKAGE_DIR"
fi
if [ "$CUSTOM_WORK_DIR" ]; then
WORK_DIR="$CUSTOM_WORK_DIR"
fi
[ "$CUSTOM_SOURCE_DIR" ] && SOURCE_DIR="$CUSTOM_SOURCE_DIR"
[ "$CUSTOM_PACKAGE_DIR" ] && PACKAGE_DIR="$CUSTOM_PACKAGE_DIR"
[ "$CUSTOM_WORK_DIR" ] && WORK_DIR="$CUSTOM_WORK_DIR"
checkdir "$SOURCE_DIR" "$PACKAGE_DIR" "$WORK_DIR"
@@ -588,12 +576,11 @@ main() {
case $COMPRESSION_MODE in
gz|bz2|xz) PKGNAME="$name-$version-$release.spkg.tar.$COMPRESSION_MODE" ;;
*) msgerr "Invalid compression mode. ($COMPRESSION_MODE)"
exit 1 ;;
*) msgerr "Invalid compression mode. ($COMPRESSION_MODE)"; exit 1 ;;
esac
# generate .pkgfiles
if [ "$GENPKGFILES" = "yes" ]; then
if [ "$GENPKGFILES" ]; then
generate_pkgfiles
exit 0
fi

228
scratch
View File

@@ -297,7 +297,7 @@ scratch_depends() {
msgerr "Port '$1' not exist."
exit 1
fi
#isinstalled ${depends[0]}
for dep in ${depends[@]}; do
if isinstalled $dep; then
msginst "$dep"
@@ -466,30 +466,24 @@ scratch_foreignpkg() {
}
scratch_info() {
[ $1 ] || return 0
version="-"
release="-"
iver="-"
irel="-"
if isinstalled $1; then
iver=$(installed_pkg_info version $1)
irel=$(installed_pkg_info release $1)
INSTALLED=1
fi
portpath=$(getportpath $1)
if [ -n "$portpath" ]; then
. $portpath/$BUILD_SCRIPT
PORTEXIST=1
else
portpath="-"
fi
if [ "$INSTALLED" != 1 ] && [ "$PORTEXIST" != 1 ]; then
return 0
fi
echo -e "name: \t\t$1 \t$([[ $PORTEXIST = 1 ]] || echo \( foreignpkg \))"
echo -e "version: \t$version \t( installed: $iver )"
echo -e "release: \t$release \t( installed: $irel )"
echo -e "port path: \t$portpath"
needarg $@
local pkg=$1
ppath=$(getportpath $pkg) || return 1
. $ppath/$BUILD_SCRIPT
desc=$(grep "^# description[[:blank:]]*:" $ppath/$BUILD_SCRIPT | sed 's/^# description[[:blank:]]*:[[:blank:]]*//')
url=$(grep "^# homepage[[:blank:]]*:" $ppath/$BUILD_SCRIPT | sed 's/^# homepage[[:blank:]]*:[[:blank:]]*//')
maint=$(grep "^# maintainer[[:blank:]]*:" $ppath/$BUILD_SCRIPT | sed 's/^# maintainer[[:blank:]]*:[[:blank:]]*//')
deps=$(get_depends $pkg | tr '\n' ' ')
echo -e "Name: $pkg"
echo -e "Path: $ppath"
echo -e "Version: $version"
echo -e "Release: $release"
echo -e "Description: $desc"
echo -e "Homepage: $url"
echo -e "Maintainer: $maint"
echo -e "Dependencies: $deps"
}
scratch_trigger() {
@@ -730,36 +724,29 @@ pre_triggers() {
}
scratch_build() {
local OPTS
if [ -z "$1" ]; then
echo "Please specify package to build."
return 1
fi
while [ "$1" ]; do
if [[ "$1" =~ ^-(f|w|m|o|x|l)$ ]]; then
OPTS+=($1)
elif [[ "$1" =~ ^--(force-rebuild|skip-mdsum|download|extract|keep-work|redownload|log)$ ]]; then
OPTS+=($1)
elif [[ "$1" =~ ^--(pkgdir|srcdir|logdir|workdir)=* ]]; then
OPTS+=($1)
elif [[ "$1" =~ ^-. ]]; then
echo "Unrecognize option. ($1)"
return 1
else
PKGNAME=$1
fi
case $1 in
-i|-u|-r) continue;;
-*) OPTS+=($1);;
*) PKGNAME+=($1);;
esac
shift
done
pushd $(getportpath $PKGNAME)
if [ $? = 0 ]; then
settermtitle "Building $PKGNAME..."
pkgbuild ${OPTS[@]} || return 1
settermtitle "Building $PKGNAME done"
else
echo "Package '$PKGNAME' not found."
return 1
fi
return 0
for P in ${PKGNAME[@]}; do
pushd $(getportpath $P)
if [ $? = 0 ]; then
settermtitle "Building $P..."
pkgbuild ${OPTS[@]} || {
settermtitle "Building $P failed"
return 1
}
settermtitle "Building $P done"
else
echo "Package '$P' not found."
return 1
fi
popd
done
}
scratch_install() {
@@ -767,34 +754,23 @@ scratch_install() {
needroot "Installing package"
if [ -z "$1" ]; then
while [ "$1" ]; do
case $1 in
-i|-u) ;;
-r) REINSTALL=1;;
-y|--yes) NOCONFIRM=1;;
-n|--no-dep) NO_DEP=1;;
--exclude=*) EXOPT=$1;;
-*) OPTS+=($1);;
*) PKGNAME+=($1);;
esac
shift
done
if [ -z "$PKGNAME" ]; then
echo "Please specify package(s) to install."
return 1
fi
while [ "$1" ]; do
if [[ "$1" =~ ^-(c|v|l|-verbose|-ignore-conflict|-no-backup|-log)$ ]]; then
OPTS+=($1)
elif [[ "$1" =~ ^--(srcdir|pkgdir|logdir|workdir)=* ]]; then
OPTS+=($1)
elif [[ "$1" =~ ^--exclude=* ]]; then
EXOPT=$1
elif [[ "$1" =~ ^--(no-preinstall|no-postinstall)$ ]]; then
OPTS+=($1)
elif [[ "$1" =~ ^-(r|-reinstall)$ ]]; then
OPTS+=($1)
REINSTALL=1
elif [[ "$1" =~ ^-(d|-no-dep)$ ]]; then
NO_DEP=1
elif [[ "$1" = "--yes" ]] || [[ "$1" = "-y" ]]; then
NOCONFIRM=1
elif [[ "$1" =~ ^-. ]]; then
echo "Unrecognize option. ($1)"
return 1
else
PKGNAME+=($1)
fi
shift
done
# use custom root location
if [ "$ROOT_DIR" ]; then
OPTS+=(--root=$ROOT_DIR)
@@ -809,7 +785,7 @@ scratch_install() {
else
pushd $(getportpath $ii)
settermtitle "Reinstalling $ii..."
pkgbuild ${OPTS[@]}
pkgbuild ${OPTS[@]} -r
if [ $? != 0 ]; then
error=1
break
@@ -935,23 +911,19 @@ scratch_remove() {
needroot "Removing package"
if [ -z "$1" ]; then
while [ "$1" ]; do
case $1 in
-y|--yes) NOCONFIRM=1;;
-*) OPTS+=($1);;
*) PKGNAME+=($1);;
esac
shift
done
if [ -z "$PKGNAME" ]; then
echo "Please specify package(s) to remove."
return 1
fi
while [ "$1" ]; do
if [[ "$1" =~ ^--(no-postremove|no-preremove)$ ]]; then
OPTS+=($1)
elif [[ "$1" = "--yes" ]] || [[ "$1" = "-y" ]]; then
NOCONFIRM=1
elif [[ "$1" =~ ^-. ]]; then
echo "Unrecognize option. ($1)"
return 1
else
PKGNAME+=($1)
fi
shift
done
# use custom root location
if [ "$ROOT_DIR" ]; then
OPTS+=(--root=$ROOT_DIR)
@@ -1001,24 +973,14 @@ scratch_sysup() {
needroot "Upgrading package"
while [ "$1" ]; do
if [[ "$1" =~ ^--(no-postupgrade|no-preupgrade|no-backup|log)$ ]]; then
OPTS+=($1)
elif [[ "$1" =~ ^--(srcdir|pkgdir|logdir|workdir)=* ]]; then
OPTS+=($1)
elif [[ "$1" =~ ^--exclude=* ]]; then
EXOPT=$1
elif [[ "$1" =~ ^-(c|v|l|-verbose|-ignore-conflict)$ ]]; then
OPTS+=($1)
elif [ "$1" = "--yes" ] || [ "$1" = "-y" ]; then
NOCONFIRM=1
elif [ "$1" = "--no-dep" ] || [ "$1" = "-d" ]; then
NODEP=1
elif [ "$1" = "--sync" ] || [ "$1" = "-s" ]; then
SYNC=1
elif [[ "$1" =~ ^-. ]]; then
echo "Unrecognize option. ($1)"
exit 1
fi
case $1 in
-i|-u|-r) ;;
-y|--yes) NOCONFIRM=1;;
-d|--no-dep) NODEP=1;;
-s|--sync) SYNC=1;;
--exclude=*) EXOPT+=($1);;
-*) OPTS+=($1);;
esac
shift
done
@@ -1111,28 +1073,22 @@ scratch_upgrade() {
needroot "Upgrading package"
needarg "$@"
while [ "$1" ]; do
if [[ "$1" =~ ^--(no-postupgrade|no-preupgrade|no-backup|log)$ ]]; then
OPTS+=($1)
elif [[ "$1" =~ ^--(srcdir|pkgdir|logdir|workdir)=* ]]; then
OPTS+=($1)
elif [[ "$1" =~ ^--exclude=* ]]; then
EXOPT=$1
elif [[ "$1" =~ ^-(c|v|l|-ignore-conflict|-verbose) ]]; then
OPTS+=($1)
elif [[ "$1" =~ ^-(-no-dep|d)$ ]]; then
NO_DEP=1
elif [[ "$1" = "--yes" ]] || [[ "$1" = "-y" ]]; then
NOCONFIRM=1
elif [[ "$1" =~ ^-. ]]; then
echo "Unrecognize option. ($1)"
exit 1
else
PKGNAME+=($1)
fi
case $1 in
-y|--yes) NOCONFIRM=1;;
-d|--no-dep) NO_DEP=1;;
--exclude=*) EXOPT=$1;;
-*) OPTS+=($1);;
*) PKGNAME+=($1);;
esac
shift
done
if [ -z "$PKGNAME" ]; then
echo "Please specify package(s) to remove."
return 1
fi
# use custom root location
if [ "$ROOT_DIR" ]; then
OPTS+=(--root=$ROOT_DIR)
@@ -1256,7 +1212,7 @@ scratch_outdate() {
fi
done
[ ! "$OUTDATE" ] && msg "All package is up to date."
[ ! "$OUTDATE" ] && msg "All packages are up to date."
}
clearpkgcache() {
@@ -1670,12 +1626,12 @@ shift
for opt in $@; do
case $opt in
--nocolor) nocolor ;;
--repo=*) PORT_REPO+=(${opt#*=}) ;;
--root=*) ROOT_DIR=(${opt#*=}) ;;
--*) MAINOPTS+=($opt) ;;
-*) for (( i=1; i<${#opt}; i++ )); do MAINOPTS+=(-${opt:$i:1}); done ;;
*) MAINOPTS+=($opt) ;;
--nocolor) nocolor;;
--repo=*) PORT_REPO+=(${opt#*=});;
--root=*) ROOT_DIR=(${opt#*=});;
--*) MAINOPTS+=($opt);;
-*) for (( i=1; i<${#opt}; i++ )); do MAINOPTS+=(-${opt:$i:1}); done;;
*) MAINOPTS+=($opt);;
esac
done