summaryrefslogtreecommitdiff
path: root/src/fullpkg/fullpkg-build
diff options
context:
space:
mode:
Diffstat (limited to 'src/fullpkg/fullpkg-build')
-rwxr-xr-xsrc/fullpkg/fullpkg-build180
1 files changed, 87 insertions, 93 deletions
diff --git a/src/fullpkg/fullpkg-build b/src/fullpkg/fullpkg-build
index 1771d83..e824c2e 100755
--- a/src/fullpkg/fullpkg-build
+++ b/src/fullpkg/fullpkg-build
@@ -18,101 +18,98 @@ check_vars libretools FULLBUILDCMD || exit 1
#
## status: nonfree, built, failed, unstaged
list_pkgs() {
- msg="$2"
- local pkgs=($(grep "$1:" $build_dir/log)) && {
- msg "$2"
- echo ${pkgs[@]} | tr " " "\n" | cut -d: -f2
- }
+ msg="$2"
+ local pkgs=($(grep "$1:" $build_dir/log)) && {
+ msg "$2"
+ printf '%s\n' "${pkgs[@]}" | cut -d: -f2
+ }
}
## Check all build_dir, fails if one PKGBUILD is nonfree
check_nonfree() {
- find "$build_dir" -name PKGBUILD \
- -exec pkgbuild-check-nonfree {} +
- if [ "$?" -eq 15 ]; then
- error "Some PKGBUILD have nonfree problems"
- exit 15
- fi
-
+ find "$build_dir" -name PKGBUILD \
+ -exec pkgbuild-check-nonfree {} +
+ local s=$?
+ pkgbuild-summarize-nonfree -q $s || return $s
}
# Removes a package from the buildorder
# $1 package name
# $2 buildorder file
remove_buildorder() {
- grep -Evw "${1}" ${2} > ${2}2
- mv -f ${2}2 ${2}
+ grep -Evw "${1}" ${2} > ${2}2
+ mv -f ${2}2 ${2}
- return $?
+ return $?
}
succesfull_build() {
- if [ "$RUN" != "$FULLBUILDCMD" ]; then
- return 0 # Custom command or download sources
- fi
+ if [[ "$RUN" != "$FULLBUILDCMD" ]]; then
+ return 0 # Custom command or download sources
+ fi
- if source .INFO && [ -n "$repo" ]; then
+ if source .INFO && [[ -n "$repo" ]]; then
- if [ ! -z "$HOOKLOCALRELEASE" ]; then
- "$HOOKLOCALRELEASE" "$repo"
- fi
+ if [[ ! -z "$HOOKLOCALRELEASE" ]]; then
+ "$HOOKLOCALRELEASE" "$repo"
+ fi
- msg "Updating pacman db and packages"
- sudo pacman -Sy || true
+ msg "Updating pacman db and packages"
+ sudo pacman -Sy || true
- fi
+ fi
- echo "built:$(basename $PWD)" >>$build_dir/log
+ echo "built:$(basename $PWD)" >>$build_dir/log
}
build_description() {
- list_pkgs "nonfree" "Those packages contain nonfree deps:"
- list_pkgs "built" "Those packages were built and staged:"
- list_pkgs "failed" "Those packages failed to build:"
- list_pkgs "unstaged" "Those packages couldn't be staged (missing reponame):"
+ list_pkgs "nonfree" "Those packages contain nonfree deps:"
+ list_pkgs "built" "Those packages were built and staged:"
+ list_pkgs "failed" "Those packages failed to build:"
+ list_pkgs "unstaged" "Those packages couldn't be staged (missing reponame):"
}
__build() {
- pushd ${build_dir} >/dev/null
+ pushd ${build_dir} >/dev/null
- build_packages=($(sort -gr $buildorder | cut -d: -f2)) # greater levels must be built first
+ build_packages=($(sort -gr $buildorder | cut -d: -f2)) # greater levels must be built first
- while [ ${#build_packages[@]} -ge 1 ]; do
+ while [[ ${#build_packages[@]} -ge 1 ]]; do
- pushd "$build_dir/${build_packages[0]}" >/dev/null
+ pushd "$build_dir/${build_packages[0]}" >/dev/null
- if [ -n "${HOOKPKGBUILDMOD}" ]; then
- ${HOOKPKGBUILDMOD} || true
- fi
+ if [[ -n "${HOOKPKGBUILDMOD}" ]]; then
+ ${HOOKPKGBUILDMOD} || true
+ fi
- eval "$RUN"; r=$?
+ eval "$RUN"; r=$?
- case $r in
+ case $r in
- 0) succesfull_build ;;
+ 0) succesfull_build ;;
- *) error "There were errors while trying to build the package."
- echo "failed:$(basename $PWD)" >>$build_dir/log
- ;;
- esac
+ *) error "There were errors while trying to build the package."
+ echo "failed:$(basename $PWD)" >>$build_dir/log
+ ;;
+ esac
- remove_buildorder "${build_packages[0]}" $buildorder || true
+ remove_buildorder "${build_packages[0]}" $buildorder || true
-# which is next package?
- build_packages=($(sort -gr $buildorder | cut -d: -f2))
- popd > /dev/null
- done
+ # which is next package?
+ build_packages=($(sort -gr $buildorder | cut -d: -f2))
+ popd > /dev/null
+ done
- popd >/dev/null
+ popd >/dev/null
}
# End inmediately but print a useful message
trap_exit() {
- error "$@"
- warning "Leftover files left on $build_dir"
- mv .BUILDORDER BUILDORDER
- exit 1
+ error "$@"
+ warning "Leftover files left on $build_dir"
+ mv .BUILDORDER BUILDORDER
+ exit 1
}
# Trap signals from makepkg
@@ -124,66 +121,63 @@ trap 'trap_exit "(fullpkg-build) An unknown error has occurred. Exiting..."' ERR
CLEANUP="false"
CHECKNONFREE="true"
RUN="$FULLBUILDCMD"
-MESSAGE="Building packages"
+MESSAGE="$(_ 'Building packages')"
usage() {
-
- echo ""
- echo "$(basename $0) [options] <build_dir>"
- echo ""
- echo "Builds packages from build_dir, create a build_dir using:"
- echo "'fullpkg-find <build_dir>'"
- echo ""
- echo "If no <build_dir> is specified, it uses the current directory."
- echo ""
- echo "OPTIONS:"
- echo " -h : this message."
- echo " -c : clean <build_dir> on succesfull build"
- echo " -N : don't check for freedom issues." #Also made by fullpkg-find
- echo " -r \"command\" : use this instead of \"$FULLBUILDCMD\"."
- echo " -g : get sources for building packages on build_dir."
- echo ""
- exit 1
-
+ print "Usage: %s [OPTIONS] [BUILD_DIR]" "${0##*/}"
+ print "Builds packages in BUILD_DIR, as set up by fullpkg-find"
+ echo
+ prose "Builds packages from BUILD_DIR; create BUILD_DIR using:"
+ print ' $ fullpkg-find BUILD_DIR'
+ echo
+ prose "If no BUILD_DIR is specified, it uses the current directory."
+ echo
+ print "Options:"
+ flag "-c" "Clean BUILD_DIR on succesfull build"
+ flag "-N" "Don't check for freedom issues." #Also made by fullpkg-find
+ flag "-r $(_ CMD)" "Use CMD instead of \${FULLBUILDCMD}"
+ flag "-g" "Get sources for building packages on BUILD_DIR"
+ flag "-h" "Show this message"
}
while getopts 'hNr:g' arg; do
- case $arg in
- h) usage ;;
- c) CLEAN ;;
- N) CHECKNONFREE="false" ;;
- r) RUN="$OPTARG"
- MESSAGE="Executing custom action";;
- g) RUN='makepkg -g > /dev/null'
- MESSAGE="Downloading packages";;
- esac
+ case $arg in
+ h) usage; exit 0 ;;
+ c) CLEAN ;;
+ N) CHECKNONFREE="false" ;;
+ r) RUN="$OPTARG"
+ MESSAGE="$(_ 'Executing custom action')";;
+ g) RUN='makepkg -g > /dev/null'
+ MESSAGE="$(_ 'Downloading packages')";;
+ esac
done
shift $(( OPTIND - 1 ))
build_dir="${1:-`pwd`}"
buildorder="${build_dir}/BUILDORDER"
-if [ ! -e "$buildorder" ]; then
- error "This is not a build_dir. Make one using fullpkg."
- usage
+if [[ ! -e "$buildorder" ]]; then
+ error "This is not a build_dir. Make one using fullpkg."
+ usage
+ exit 1
else
-# backup BUILDORDER
- cp "$buildorder" "$build_dir/.BUILDORDER"
+ # backup BUILDORDER
+ cp "$buildorder" "$build_dir/.BUILDORDER"
fi
if "$CHECKNONFREE"; then
- check_nonfree
+ check_nonfree
fi
msg "$MESSAGE"
__build
-if [ "$RUN" != "$FULLBUILDCMD" ]; then
- # Used for downloading or custom command
- mv "$build_dir/.BUILDORDER" "$buildorder"
- exit 0
+if [[ "$RUN" != "$FULLBUILDCMD" ]]; then
+ # Used for downloading or custom command
+ mv "$build_dir/.BUILDORDER" "$buildorder"
+ exit 0
elif "$CLEANUP"; then
- find "$build_dir" -mindepth 1 -delete
+ find "$build_dir" -mindepth 1 -delete
fi
build_description