diff --git a/smartmontools/ChangeLog b/smartmontools/ChangeLog index 5c094b28cbfc3585e2deb949585a4543d9e22330..2b2e7da0a219d7f28aac37ba8fc9093c22f8dbc4 100644 --- a/smartmontools/ChangeLog +++ b/smartmontools/ChangeLog @@ -1,9 +1,5 @@ $Id$ -2024-01-22 Oleksii Samororukov <samm@os2.kiev.ua> - - getversion.sh: fix some minor issues and make shellcheck happy - 2024-01-19 Christian Franke <franke@computer.org> os_win32/installer.nsi: Avoid that code signing invalidates the diff --git a/smartmontools/getversion.sh b/smartmontools/getversion.sh index 358d0685dd843bcc492bdf77ed3ab04b5c5294fe..10328172c5dc73c7052eb357e9d1ae8f83b1d518 100755 --- a/smartmontools/getversion.sh +++ b/smartmontools/getversion.sh @@ -57,46 +57,47 @@ else fi srcdir=${myname%/*} -test "$srcdir" != "$myname" || error "unknown ${srcdir}" +test "$srcdir" != "$myname" || error 'unknown $srcdir' files=" ChangeLog NEWS Makefile.am configure.ac smart*.in *.cpp *.h os_win32/*.cpp os_win32/*.h " -# shellcheck disable=SC2086 (cd "$srcdir" && ls -d $files >/dev/null) || error "sources not found in $srcdir" revision_from_svn() { - _f_svn_r=$(cd "$srcdir" && svnversion 2>/dev/null) || return 1 - case $_f_svn_r in [1-9][0-9]*) ;; *) return 1 ;; esac - _f_svn_t=$(cd "$srcdir" && TZ="" LC_ALL=C svn info 2>/dev/null) || return 1 - _f_svn_t=$(echo "$_f_svn_t" | sed -n 's,^.* Date: *\(2[-0-9]*\) \([0-9][:0-9]*\) .*$,\1 \2,p') - test -n "$_f_svn_t" || return 1 - svnrev=$_f_svn_r; revdate=${_f_svn_t% *}; revtime=${_f_svn_t#* } + local r t + r=$(cd "$srcdir" && svnversion 2>/dev/null) || return 1 + case $r in [1-9][0-9]*) ;; *) return 1 ;; esac + t=$(cd "$srcdir" && TZ= LC_ALL=C svn info 2>/dev/null) || return 1 + t=$(echo "$t" | sed -n 's,^.* Date: *\(2[-0-9]*\) \([0-9][:0-9]*\) .*$,\1 \2,p') + test -n "$t" || return 1 + svnrev=$r; revdate=${t% *}; revtime=${t#* } origin="svn info" } revision_from_ids() { - # shellcheck disable=SC2086 - _f_ids_x=$(cd "$srcdir" && \ + local x + x=$(cd "$srcdir" && \ sed -n 's,^.*\$[I][d]: [^ ]* \([0-9][0-9]*\) \([0-9][-0-9]*\) \([0-9][:0-9]*\)Z [^$]*\$.*$,\1 \2 \3,p' $files \ | sort -n -r | sed -n 1p) - test -n "$_f_ids_x" || return 1 - svnrev=${_f_ids_x%% *}; _f_ids_x=${_f_ids_x#* }; revdate=${_f_ids_x% *}; revtime=${_f_ids_x#* } + test -n "$x" || return 1 + svnrev=${x%% *}; x=${x#* }; revdate=${x% *}; revtime=${x#* } origin="Id strings" } revision_from_git() { - _f_git_x=$(cd "$srcdir" && TZ="" LC_ALL=C git log -1 --date=iso 2>/dev/null) || return 1 - _f_git_h=$(echo "$_f_git_x" | sed -n 's,^commit \([0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]\).*$,\1,p') - _f_git_t=$(echo "$_f_git_x" | sed -n 's,^Date: *\(2[-0-9]*\) \([0-9][:0-9]*\) .*$,\1 \2,p') - _f_git_r=$(echo "$_f_git_x" | sed -n 's,^.*git-svn-id: [.:/a-z]*/smartmontools/code/trunk@\([1-9][0-9]*\) 4ea69e.*$,\1,p') - test "${_f_git_h:+y}${_f_git_r:+y}${_f_git_t:+y}" = "yyy" || return 1 - test -z "$(cd "$srcdir" && git status -s -uno 2>&1)" || _f_git_r="${_f_git_r}M" - svnrev=$_f_git_r; revdate=${_f_git_t% *}; revtime=${_f_git_t#* }; githash=$_f_git_h + local h r t x + x=$(cd "$srcdir" && TZ= LC_ALL=C git log -1 --date=iso 2>/dev/null) || return 1 + h=$(echo "$x" | sed -n 's,^commit \([0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]\).*$,\1,p') + t=$(echo "$x" | sed -n 's,^Date: *\(2[-0-9]*\) \([0-9][:0-9]*\) .*$,\1 \2,p') + r=$(echo "$x" | sed -n 's,^.*git-svn-id: [.:/a-z]*/smartmontools/code/trunk@\([1-9][0-9]*\) 4ea69e.*$,\1,p') + test "${h:+y}${r:+y}${t:+y}" = "yyy" || return 1 + test -z "$(cd "$srcdir" && git status -s -uno 2>&1)" || r="${r}M" + svnrev=$r; revdate=${t% *}; revtime=${t#* }; githash=$h origin="git log" } @@ -104,7 +105,7 @@ if $i_opt || $r_opt; then svnrev=; revdate=; revtime=; githash= origin="missing information" for m in $methods; do - "revision_from_${m}" || continue + revision_from_$m || continue break done