diff --git a/makedeb b/makedeb index 9aedecc..985c0e7 160000 --- a/makedeb +++ b/makedeb @@ -1 +1 @@ -Subproject commit 9aedecc62e9585ba1d9b88efe083b52105e0947f +Subproject commit 985c0e7a06c90a380f76825f6aedbcf2648629f7 diff --git a/script/build.sh b/script/build.sh index 94d40e4..a5722f2 100755 --- a/script/build.sh +++ b/script/build.sh @@ -135,25 +135,45 @@ for package in "${_PACKGES_TO_BUILD[@]}" ; do msg_info "Start for $package" cd "$package" - "$MAKEDEB_PATH" --nobuild "${MAKEDEB_ARGS[@]}" && ret=$? || ret=$? - if [[ $ret -ne 0 ]] ; then - msg_warn "Error occurred when running makedeb, skip this package" - exit 4 - fi + function retrieve_source { + "$MAKEDEB_PATH" --nobuild "${MAKEDEB_ARGS[@]}" && ret=$? || ret=$? + if [[ $ret -ne 0 ]] ; then + msg_warn "Error occurred when running makedeb, skip this package" + exit 4 + fi + } + function is_dynamic_pkgver { + "$MAKEDEB_PATH" --is-dynamic-pkgver "${MAKEDEB_ARGS[@]}" + } - package_name="$("$MAKEDEB_PATH" --packagelist "${MAKEDEB_ARGS[@]}")" + package_name="" + source_ready=0 if [[ -n "${PACKAGE_EXISTS_HOOK}" ]] ; then - ret=0 - msg_info "Checking if package $package_name exists..." - run_hook "$PACKAGE_EXISTS_HOOK" "{}" "$package_name" log_exe_str || ret="$?" + if is_dynamic_pkgver ; then + retrieve_source + source_ready=1 + fi + package_name="$("$MAKEDEB_PATH" --packagelist "${MAKEDEB_ARGS[@]}")" + + msg_info "Checking if package $package_name exists..." + + run_hook "$PACKAGE_EXISTS_HOOK" "{}" "$package_name" log_exe_str && ret="$?" || ret="$?" if [[ $ret -eq 0 ]] ; then msg_info "Package ${package_name} already built, skip" exit 0 fi fi + if (( ! source_ready )) ; then + retrieve_source + fi + + if [[ -z "$package_name" ]] ; then + package_name="$("$MAKEDEB_PATH" --packagelist "${MAKEDEB_ARGS[@]}")" + fi + msg_info "Start building..." "$MAKEDEB_PATH" --noextract "${MAKEDEB_ARGS[@]}" && ret=$? || ret=$?