summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.in2
-rw-r--r--src/oh-parsechangelog.sh56
2 files changed, 57 insertions, 1 deletions
diff --git a/src/Makefile.in b/src/Makefile.in
index 1037f98..bc4a362 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -31,7 +31,7 @@ BINDIR = @bindir@
SRCS = opkbuild.sh \
oh-checkbuilddeps.sh oh-applypatches.sh oh-copyconfig.sh \
oh-strip.sh oh-installfiles.sh oh-installdocs.sh \
- oh-gencontrol.sh oh-buildopk.sh
+ oh-gencontrol.sh oh-buildopk.sh oh-parsechangelog.sh
OBJS = $(SRCS:.sh=)
PACKAGE = @package@
diff --git a/src/oh-parsechangelog.sh b/src/oh-parsechangelog.sh
new file mode 100644
index 0000000..86d8a8a
--- /dev/null
+++ b/src/oh-parsechangelog.sh
@@ -0,0 +1,56 @@
+#!@@SHELL@@
+#
+# opkhelper
+# src/oh-parsechangelog
+# Parse a changelog.
+#
+# Copyright (C) 2012 Patrick "P. J." McDermott
+#
+# 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 3 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/>.
+
+. @@LIBDIR@@/opkhelper/changelog
+
+print_usage()
+{
+ printf 'Usage: %s\n' "${1}"
+}
+
+main()
+{
+ oh_changelog_parse changelog output
+
+ printf 'Parsed %d entries.\n' ${?}
+}
+
+output()
+{
+ printf 'Source: %s\nVersion: %s\nDistribution: %s\n' \
+ "${OH_CHANGELOG_SOURCE}" "${OH_CHANGELOG_VERSION}" \
+ "${OH_CHANGELOG_DISTRIBUTION}"
+ printf 'Maintainer: %s\nDate: %s\n' \
+ "${OH_CHANGELOG_MAINTAINER}" "${OH_CHANGELOG_DATE}"
+ printf 'Changes:\n'
+ while IFS= read -r line; do
+ if [ -z "${line}" ]; then
+ printf ' .\n'
+ else
+ printf ' %s\n' "${line}"
+ fi
+ done <<EOF
+${OH_CHANGELOG_CHANGES}
+EOF
+ echo
+}
+
+main