On 23/05/10 20:58, Andres P wrote:
Signed-off-by: Andres P<[email protected]>
---

-1 from me. The new function does two things that are completely unrelated apart from the regex they use. It makes no sense to combine them. Also the function name does not reflect what it does at all.

There is a limit to how much code refactoring is useful. It needs to be balanced by readability.


  scripts/makepkg.sh.in |   75 +++++++++++++++++--------------------------------
  1 files changed, 26 insertions(+), 49 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 1707245..00b96a9 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1070,6 +1070,30 @@ create_package() {
        fi
  }

+parse_buildscript() {
+       local i
+       for i in 'changelog' 'install'; do
+               local $i=$(sed -n "s,^\([[:space:]]*\)$i=,\1,p" "$BUILDSCRIPT")
+               local file
+               for file in ${!i}; do
+                       # evaluate any bash variables used
+                       eval file=${file}
+
+                       [[ $1 ]] || file=${srclinks}/${pkgbase}/$file
+                       [[ -f $file ]]&&  return
+
+                       if [[ $1 ]]; then
+                               error "$(gettext "${i^} file (%s) does not exist.")" 
"$file"
+                               return 1
+                       else
+                               msg2 "$(gettext "Adding $i file (%s)...")" 
"$file"
+                               ln -s "${startdir}/$file" 
"${srclinks}/${pkgbase}/"
+                       fi
+               done
+       done
+}
+
+
  create_srcpackage() {
        cd "$startdir"

@@ -1107,31 +1131,7 @@ create_srcpackage() {
                fi
        done

-       local install_files=( $(grep "^[[:space:]]*install=" "$BUILDSCRIPT" | sed 
"s/install=//") )
-       if [[ -n $install_files ]]; then
-               local file
-               for file in ${install_fil...@]}; do
-               # evaluate any bash variables used
-               eval file=${file}
-                       if [[ ! -f "${srclinks}/${pkgbase}/$file" ]]; then
-                               msg2 "$(gettext "Adding install script (%s)...")" 
"$file"
-                               ln -s "${startdir}/$file" 
"${srclinks}/${pkgbase}/"
-                       fi
-               done
-       fi
-
-       local changelog_files=( $(grep "^[[:space:]]*changelog=" "$BUILDSCRIPT" | sed 
"s/changelog=//") )
-       if [[ -n $changelog_files ]]; then
-               local file
-               for file in ${changelog_fil...@]}; do
-                       # evaluate any bash variables used
-                       eval file=${file}
-                       if [[ ! -f "${srclinks}/${pkgbase}/$file" ]]; then
-                               msg2 "$(gettext "Adding package changelog (%s)...")" 
"$file"
-                               ln -s "${startdir}/$file" 
"${srclinks}/${pkgbase}/"
-                       fi
-               done
-       fi
+       parse_buildscript

        local TAR_OPT
        case "$SRCEXT" in
@@ -1250,30 +1250,7 @@ check_sanity() {
                fi
        done

-       local install_files=( $(grep "^[[:space:]]*install=" "$BUILDSCRIPT" | sed 
"s/install=//") )
-       if [[ -n $install_files ]]; then
-               local file
-               for file in ${install_fil...@]}; do
-               # evaluate any bash variables used
-               eval file=${file}
-                       if [[ ! -f $file ]]; then
-                               error "$(gettext "Install scriptlet (%s) does not 
exist.")" "$file"
-                               return 1
-                       fi
-               done
-       fi
-
-       local changelog_files=( $(grep "^[[:space:]]*changelog=" "$BUILDSCRIPT" | sed 
"s/changelog=//") )
-       if [[ -n $changelog_files ]]; then
-               for file in ${changelog_fil...@]}; do
-                       # evaluate any bash variables used
-                       eval file=${file}
-                       if [[ ! -f $file ]]; then
-                               error "$(gettext "Changelog file (%s) does not exist.")" 
"$file"
-                               return 1
-                       fi
-               done
-       fi
+       parse_buildscript check

        local valid_options=1
        local opt known kopt


Reply via email to