Compare commits

..

2 Commits

Author SHA1 Message Date
Jakub Klinkovský
72b688f640 Merge branch 'version-full-progress' into 'master'
feat(version): enhance version check spinner to progressively update the full pretty output

See merge request archlinux/devtools!313
2025-07-22 21:16:43 +00:00
Jakub Klinkovský
753d2daf65 feat(version): enhance version check spinner to progressively update the full pretty output
This way the spinner updates not only the Summary section, but also
Failure and Out-of-date which would otherwise be shown only at the end.

The implementation is kind of gross, but bash can't pass arrays to a
function 🤷
2025-04-26 22:53:53 +02:00
4 changed files with 35 additions and 10 deletions

View File

@@ -1,6 +1,6 @@
SHELL=/bin/bash -o pipefail
V=1.4.0
V=1.3.2
BUILDTOOLVER ?= $(V)
PREFIX = /usr/local

View File

@@ -1,6 +1,4 @@
#!/hint/bash
# shellcheck disable=2034
#
# /etc/makepkg.conf.d/fortran.conf
#
@@ -11,12 +9,10 @@
# Flags used for the Fortran compiler, similar in spirit to CFLAGS. Read
# linkman:gfortran[1] for more details on the available flags.
FFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt \
-Wp,-D_FORTIFY_SOURCE=3 -fstack-clash-protection -fcf-protection \
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"
FCFLAGS="$FFLAGS"
#FFLAGS="-O2 -pipe"
#FCFLAGS="$FFLAGS"
# Additional compiler flags appended to `FFLAGS` and `FCFLAGS` for use in debugging. Usually
# this would include: ``-g''. Read linkman:gfortran[1] for more details on the wide
# variety of compiler flags available.
DEBUG_FFLAGS="-g"
#DEBUG_FFLAGS="-g"

View File

@@ -80,7 +80,7 @@ check_root SOURCE_DATE_EPOCH,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAG
makechrootpkg_args+=("${@:$OPTIND}")
# Automatically recreate the root chroot if a version mismatch is detected
CURRENT_CHROOT_VERSION=$(cat "${chroots}/${repo}-${arch}/root/.arch-chroot" 2>/dev/null)
CURRENT_CHROOT_VERSION=$(cat "${chroots}/${repo}-${arch}/root/.arch-chroot")
if [[ -f "${chroots}/${repo}-${arch}/root/.arch-chroot" ]] && [[ "$CURRENT_CHROOT_VERSION" != "$CHROOT_VERSION" ]]; then
warning "Recreating chroot '%s' (%s) as it is not at version %s" "${chroots}/${repo}-${arch}/root" "$CURRENT_CHROOT_VERSION" "$CHROOT_VERSION"
clean_first=true

View File

@@ -140,6 +140,32 @@ pkgctl_version_check() {
pushd "${path}" >/dev/null
if [[ ${output_format} == pretty ]]; then
# initialize the tmp file for status output
section_separator=''
printf "" > "${status_dir}/tmp"
# update the current list of failed packages
if (( ${#failure[@]} > 0 )); then
exit_code=${PKGCTL_VERSION_CHECK_EXIT_FAILURE}
printf "%sFailure%s\n" "${section_separator}${BOLD}${UNDERLINE}" "${ALL_OFF}" >> "${status_dir}/tmp" 2>&1
section_separator=$'\n'
for result in "${failure[@]}"; do
msg_error " ${result}" >> "${status_dir}/tmp" 2>&1
done
fi
# update the current list of out-of-date packages
if (( ${#out_of_date[@]} > 0 )); then
exit_code=${PKGCTL_VERSION_CHECK_EXIT_OUT_OF_DATE}
printf "%sOut-of-date%s\n" "${section_separator}${BOLD}${UNDERLINE}" "${ALL_OFF}" >> "${status_dir}/tmp" 2>&1
section_separator=$'\n'
for result in "${out_of_date[@]}"; do
msg_warn " ${result}" >> "${status_dir}/tmp" 2>&1
done
fi
printf "%s" "${section_separator}" >> "${status_dir}/tmp"
# update the current terminal spinner status
(( ++current_item ))
pkgctl_version_check_spinner \
@@ -217,6 +243,9 @@ pkgctl_version_check() {
return 0
fi
# reset the section separator after loop
section_separator=''
if (( verbose )) && (( ${#up_to_date[@]} > 0 )); then
printf "%sUp-to-date%s\n" "${section_separator}${BOLD}${UNDERLINE}" "${ALL_OFF}"
section_separator=$'\n'
@@ -408,7 +437,7 @@ pkgctl_version_check_spinner() {
pkgctl_version_check_summary \
"${up_to_date_count}" \
"${out_of_date_count}" \
"${failure_count}" > "${tmp_file}"
"${failure_count}" >> "${tmp_file}"
# print the progress status
printf "📡 Checking: %s/%s [%s] %%spinner%%" \