Signed-off-by: Ashley Whetter <[email protected]>
---
 scripts/Makefile.am              |   1 +
 scripts/libmakepkg/srcinfo.sh.in | 120 +++++++++++++++++++++++++++++++++++++++
 scripts/makepkg.sh.in            |  94 ------------------------------
 3 files changed, 121 insertions(+), 94 deletions(-)
 create mode 100644 scripts/libmakepkg/srcinfo.sh.in

diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index d660c0b..2dfd238 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -74,6 +74,7 @@ LIBMAKEPKG_IN = \
        libmakepkg/lint_pkgbuild/source.sh \
        libmakepkg/lint_pkgbuild/util.sh \
        libmakepkg/lint_pkgbuild/variable.sh \
+       libmakepkg/srcinfo.sh \
        libmakepkg/source.sh \
        libmakepkg/source/bzr.sh \
        libmakepkg/source/file.sh \
diff --git a/scripts/libmakepkg/srcinfo.sh.in b/scripts/libmakepkg/srcinfo.sh.in
new file mode 100644
index 0000000..96dc59b
--- /dev/null
+++ b/scripts/libmakepkg/srcinfo.sh.in
@@ -0,0 +1,120 @@
+#!/bin/bash
+#
+#   srcinfo.sh - functions for writing .SRCINFO files
+#
+#   Copyright (c) 2016 Pacman Development Team <[email protected]>
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+
+[[ -n "$LIBMAKEPKG_SRCINFO_SH" ]] && return
+LIBMAKEPKG_SRCINFO_SH=1
+
+LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
+
+source "$LIBRARY/util/pkgbuild.sh"
+
+srcinfo_open_section() {
+       printf '%s = %s\n' "$1" "$2"
+}
+
+srcinfo_close_section() {
+       echo
+}
+
+srcinfo_write_attr() {
+       # $1: attr name
+       # $2: attr values
+
+       local attrname=$1 attrvalues=("${@:2}")
+
+       # normalize whitespace, strip leading and trailing
+       attrvalues=("${attrvalues[@]//+([[:space:]])/ }")
+       attrvalues=("${attrvalues[@]#[[:space:]]}")
+       attrvalues=("${attrvalues[@]%[[:space:]]}")
+
+       printf "\t$attrname = %s\n" "${attrvalues[@]}"
+}
+
+pkgbuild_extract_to_srcinfo() {
+       # $1: pkgname
+       # $2: attr name
+       # $3: multivalued
+
+       local pkgname=$1 attrname=$2 isarray=$3 outvalue=
+
+       if get_pkgbuild_attribute "$pkgname" "$attrname" "$isarray" 'outvalue'; 
then
+               srcinfo_write_attr "$attrname" "${outvalue[@]}"
+       fi
+}
+
+srcinfo_write_section_details() {
+       local attr package_arch a
+       local multivalued_arch_attrs=(source provides conflicts depends replaces
+                                     optdepends makedepends checkdepends
+                                     {md5,sha{1,224,256,384,512}}sums)
+
+       for attr in "${singlevalued[@]}"; do
+               pkgbuild_extract_to_srcinfo "$1" "$attr" 0
+       done
+
+       for attr in "${multivalued[@]}"; do
+               pkgbuild_extract_to_srcinfo "$1" "$attr" 1
+       done
+
+       get_pkgbuild_attribute "$1" 'arch' 1 'package_arch'
+       for a in "${package_arch[@]}"; do
+               # 'any' is special. there's no support for, e.g. depends_any.
+               [[ $a = any ]] && continue
+
+               for attr in "${multivalued_arch_attrs[@]}"; do
+                       pkgbuild_extract_to_srcinfo "$1" "${attr}_$a" 1
+               done
+       done
+}
+
+srcinfo_write_global() {
+       local singlevalued=(pkgdesc pkgver pkgrel epoch url install changelog)
+       local multivalued=(arch groups license checkdepends makedepends
+                          depends optdepends provides conflicts replaces
+                          noextract options backup
+                          source validpgpkeys {md5,sha{1,224,256,384,512}}sums)
+
+       srcinfo_open_section 'pkgbase' "${pkgbase:-$pkgname}"
+       srcinfo_write_section_details ''
+       srcinfo_close_section
+}
+
+srcinfo_write_package() {
+       local singlevalued=(pkgdesc url install changelog)
+       local multivalued=(arch groups license checkdepends depends optdepends
+                          provides conflicts replaces options backup)
+
+       srcinfo_open_section 'pkgname' "$1"
+       srcinfo_write_section_details "$1"
+       srcinfo_close_section
+}
+
+write_srcinfo() {
+       local pkg
+
+       printf "# Generated by makepkg %s\n" "$makepkg_version"
+       printf "# %s\n" "$(LC_ALL=C date -u)"
+
+       srcinfo_write_global
+
+       for pkg in "${pkgname[@]}"; do
+               srcinfo_write_package "$pkg"
+       done
+}
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 80b95f4..4411ac2 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -999,100 +999,6 @@ find_libprovides() {
        printf '%s\n' "${libprovides[@]}"
 }
 
-srcinfo_open_section() {
-       printf '%s = %s\n' "$1" "$2"
-}
-
-srcinfo_close_section() {
-       echo
-}
-
-srcinfo_write_attr() {
-       # $1: attr name
-       # $2: attr values
-
-       local attrname=$1 attrvalues=("${@:2}")
-
-       # normalize whitespace, strip leading and trailing
-       attrvalues=("${attrvalues[@]//+([[:space:]])/ }")
-       attrvalues=("${attrvalues[@]#[[:space:]]}")
-       attrvalues=("${attrvalues[@]%[[:space:]]}")
-
-       printf "\t$attrname = %s\n" "${attrvalues[@]}"
-}
-
-pkgbuild_extract_to_srcinfo() {
-       # $1: pkgname
-       # $2: attr name
-       # $3: multivalued
-
-       local pkgname=$1 attrname=$2 isarray=$3 outvalue=
-
-       if get_pkgbuild_attribute "$pkgname" "$attrname" "$isarray" 'outvalue'; 
then
-               srcinfo_write_attr "$attrname" "${outvalue[@]}"
-       fi
-}
-
-srcinfo_write_section_details() {
-       local attr package_arch a
-       local multivalued_arch_attrs=(source provides conflicts depends replaces
-                                     optdepends makedepends checkdepends
-                                     {md5,sha{1,224,256,384,512}}sums)
-
-       for attr in "${singlevalued[@]}"; do
-               pkgbuild_extract_to_srcinfo "$1" "$attr" 0
-       done
-
-       for attr in "${multivalued[@]}"; do
-               pkgbuild_extract_to_srcinfo "$1" "$attr" 1
-       done
-
-       get_pkgbuild_attribute "$1" 'arch' 1 'package_arch'
-       for a in "${package_arch[@]}"; do
-               # 'any' is special. there's no support for, e.g. depends_any.
-               [[ $a = any ]] && continue
-
-               for attr in "${multivalued_arch_attrs[@]}"; do
-                       pkgbuild_extract_to_srcinfo "$1" "${attr}_$a" 1
-               done
-       done
-}
-
-srcinfo_write_global() {
-       local singlevalued=(pkgdesc pkgver pkgrel epoch url install changelog)
-       local multivalued=(arch groups license checkdepends makedepends
-                          depends optdepends provides conflicts replaces
-                          noextract options backup
-                          source validpgpkeys {md5,sha{1,224,256,384,512}}sums)
-
-       srcinfo_open_section 'pkgbase' "${pkgbase:-$pkgname}"
-       srcinfo_write_section_details ''
-       srcinfo_close_section
-}
-
-srcinfo_write_package() {
-       local singlevalued=(pkgdesc url install changelog)
-       local multivalued=(arch groups license checkdepends depends optdepends
-                          provides conflicts replaces options backup)
-
-       srcinfo_open_section 'pkgname' "$1"
-       srcinfo_write_section_details "$1"
-       srcinfo_close_section
-}
-
-write_srcinfo() {
-       local pkg
-
-       printf "# Generated by makepkg %s\n" "$makepkg_version"
-       printf "# %s\n" "$(LC_ALL=C date -u)"
-
-       srcinfo_write_global
-
-       for pkg in "${pkgname[@]}"; do
-               srcinfo_write_package "$pkg"
-       done
-}
-
 write_pkginfo() {
        local builddate=$(date -u "+%s")
        if [[ -n $PACKAGER ]]; then
-- 
2.7.0

Reply via email to