[pacman-dev] [PATCH] makepkg: bad code rep in bscript parsing
Andres P
aepd87 at gmail.com
Sun May 23 06:58:15 EDT 2010
Signed-off-by: Andres P <aepd87 at gmail.com>
---
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_files[@]}; 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_files[@]}; 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_files[@]}; 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_files[@]}; 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
--
1.7.1
More information about the pacman-dev
mailing list