summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorP. J. McDermott <pj@pehjota.net>2014-09-01 00:49:27 (EDT)
committer P. J. McDermott <pj@pehjota.net>2014-09-01 00:49:27 (EDT)
commit040d5382f5d7d33739ea6ec6012d40c05b9b6b8a (patch)
tree8b2d3669b2e019df89552399dbf16690ae251c16
parentfef4714de1ec72c3c8ae66b63d9001990b44ceb6 (diff)
lib/package.sh: New file
-rw-r--r--lib/local.mk3
-rw-r--r--lib/package.sh57
-rw-r--r--locale/en_US.sh3
3 files changed, 62 insertions, 1 deletions
diff --git a/lib/local.mk b/lib/local.mk
index b1076f2..1a4ac0e 100644
--- a/lib/local.mk
+++ b/lib/local.mk
@@ -12,4 +12,5 @@ pkgdata_sources = \
lib/opkg.sh \
lib/rand.sh \
lib/cmd.sh \
- lib/profile.sh
+ lib/profile.sh \
+ lib/package.sh
diff --git a/lib/package.sh b/lib/package.sh
new file mode 100644
index 0000000..87d0afa
--- /dev/null
+++ b/lib/package.sh
@@ -0,0 +1,57 @@
+# Interface for handling source package metadata
+#
+# Copyright (C) 2014 Patrick "P. J." McDermott
+#
+# This file is part of the ProteanOS Development Kit.
+#
+# The ProteanOS Development Kit 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.
+#
+# The ProteanOS Development Kit 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 the ProteanOS Development Kit. If not, see
+# <http://www.gnu.org/licenses/>.
+
+[ "x${_PACKAGE_SM+set}" = 'xset' ] && return 0
+_PACKAGE_SM=1
+
+use locale
+use output
+
+package_dir=
+package_format=
+
+package_init()
+{
+ local dir="${1}"
+
+ package_dir="${dir}"
+
+ package_format=''
+ if [ -r "${package_dir}/format" ]; then
+ case "$(cat "${package_dir}/format")" in
+ 2.*)
+ package_format=2
+ ;;
+ esac
+ fi
+
+ if [ "x${package_format}" = 'x' ]; then
+ error 2 "$(get_msg 'package_format_unknown')"
+ fi
+
+ use "package/${package_format}"
+
+ return 0
+}
+
+package_get_build_deps()
+{
+ "package_${package_format}_get_build_deps"
+}
diff --git a/locale/en_US.sh b/locale/en_US.sh
index c8e2fc9..15e1c2f 100644
--- a/locale/en_US.sh
+++ b/locale/en_US.sh
@@ -98,3 +98,6 @@ msg_prokit_cmd_build_not_a_dir='Not a directory: %s'
# lib/profile.sh
msg_prokit_profile_not_found='Profile "%s" not found'
+
+# lib/package.sh
+msg_prokit_package_format_unknown='Unable to detect package format'