diff options
Diffstat (limited to 'fullpkg')
-rwxr-xr-x | fullpkg | 45 |
1 files changed, 29 insertions, 16 deletions
@@ -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 } |