summaryrefslogtreecommitdiff
path: root/fullpkg
diff options
context:
space:
mode:
Diffstat (limited to 'fullpkg')
-rwxr-xr-xfullpkg45
1 files changed, 29 insertions, 16 deletions
diff --git a/fullpkg b/fullpkg
index 5dce2ef..21bef16 100755
--- a/fullpkg
+++ b/fullpkg
@@ -30,7 +30,7 @@ function usage {
echo "OPTIONS:"
echo " -h : this message."
echo " -a absdir : set absdir as ABSROOT."
- echo " -b : do not check deps but build. Needs -d"
+ echo " -b build_dir : use a fullpkg build_dir and only build."
echo " -c : check deps only, do not build."
echo " -d build_dir : use this dir to build. Defaults to mktemp."
echo " -n : don't update pacman db."
@@ -287,7 +287,7 @@ function _pkg_build () {
}
msg "Updating pacman db and packages"
- sudo pacman -Syu --noconfirm
+ sudo pacman -Syu --noconfirm || true
}
echo "built:$(basename $PWD)" >> $build_dir/log
@@ -361,11 +361,20 @@ check_deps_only='n'
do_cleanup='n'
max_level=21
OFFLINE=false
-while getopts 'ha:bcCd:l:nm:r:o' arg; do
+while getopts 'ha:b:cCd:l:nm:r:o' arg; do
case $arg in
h) usage; exit 0 ;;
a) ABSROOT="$OPTARG" ;;
- b) build_only='y' ;;
+ b) build_only='y'
+ build_dir="$OPTARG"
+ [ -z ${build_dir} ] && {
+ usage
+ exit 1
+ }
+ [ -e ${build_dir}/BUILDORDER ] && {
+ error "${build_dir}/BUILDORDER doesn't exist."
+ exit 1
+ };;
c) check_deps_only='y' ;;
C) do_cleanup='y';;
# f) force_build+="-f pkgname " ;;
@@ -380,17 +389,21 @@ while getopts 'ha:bcCd:l:nm:r:o' arg; do
esac
done
+if [ ${build_only} == 'n' ]; then
+
# Check if we are actually on a build directory
# Do this early
-[ ! -r PKGBUILD ] && {
- error "This isn't a build directory"
- usage && exit 1
-}
+
+ [ -r PKGBUILD ] && {
+ error "This isn't a build directory"
+ usage && exit 1
+ }
# Add mips64el if missing from arch=() and it isn't an 'any' package
-if ! grep mips64el PKGBUILD >/dev/null; then
- plain "Adding mips64el arch"
- sed -i "s/^\(arch=([^)anym]\+\))/\1 'mips64el')/" "PKGBUILD"
+ if ! grep mips64el PKGBUILD >/dev/null; then
+ plain "Adding mips64el arch"
+ sed -i "s/^\(arch=([^)anym]\+\))/\1 'mips64el')/" "PKGBUILD"
+ fi
fi
# Only on level 0
@@ -399,16 +412,16 @@ if [ $level -eq 0 ]; then
build_dir=${build_dir:-$(mktemp -d /tmp/fullpkg.XXXXXX)}
# make files for log and buildorder
- touch $build_dir/{log,BUILDORDER}
- buildorder=$build_dir/BUILDORDER
+ touch ${build_dir}/{log,BUILDORDER}
+ buildorder=${build_dir}/BUILDORDER
- [ $noupdate = 'n' ] && {
+ [ ${noupdate} = 'n' ] && {
msg "Updating pacman db and packages"
- sudo pacman -Syu --noconfirm
+ sudo pacman -Syu --noconfirm || true
}
# Build only
- [ $build_only == 'y' ] && {
+ [ ${build_only} == 'y' ] && {
_pkg_build
exit 0
}