summaryrefslogtreecommitdiffstats
path: root/lib/cmd/build.sh
diff options
context:
space:
mode:
Diffstat (limited to 'lib/cmd/build.sh')
-rw-r--r--lib/cmd/build.sh153
1 files changed, 0 insertions, 153 deletions
diff --git a/lib/cmd/build.sh b/lib/cmd/build.sh
deleted file mode 100644
index d22fa1e..0000000
--- a/lib/cmd/build.sh
+++ /dev/null
@@ -1,153 +0,0 @@
-# "build" command
-#
-# 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/>.
-
-use block
-use profile
-use session
-use rand
-use package
-use control
-
-cmd_build_root=
-cmd_build_pkg_dir=
-cmd_build_build_deps=
-
-cmd_build_main()
-{
- local root=
- local dev=
- local opkbuild_optstring=
- local arch=
- local plat=
- local first_arg=
- local arg=
-
- if [ ${#} -lt 2 ]; then
- print_cmd_usage 'build' >&2
- exit 1
- fi
-
- root="${1}"
- shift 1
-
- dev=''
- if is_block "${root}"; then
- dev="${root}"
- root="$(block_mount "${dev}")"
- fi
-
- cmd_build_root="${root}"
-
- opkbuild_optstring="$(cat "${root}/usr/share/opkbuild/optstring")"
- arch="$(cat "${root}/etc/proteanos_arch")"
- plat="$(cat "${root}/etc/proteanos_plat")"
- while getopts "${opkbuild_optstring}" opt 2>/dev/null; do
- case "${opt}" in
- a) arch="${OPTARG}";;
- p) plat="${OPTARG}";;
- esac
- done
-
- first_arg=true
- cmd_build_pkg_dir=''
- for arg in "${@}"; do
- if ${first_arg}; then
- set --
- first_arg=false
- else
- set -- "${@}" "${cmd_build_pkg_dir}"
- fi
- cmd_build_pkg_dir="${arg}"
- done
-
- . "${root}/etc/os-release"
- profile_set "${ID}"
-
- if ! [ -d "${cmd_build_pkg_dir}" ]; then
- error 2 "$(get_msg 'cmd_build_not_a_dir')" \
- "${cmd_build_pkg_dir}"
- fi
- package_init "${cmd_build_pkg_dir}"
- package_set_substvars "${arch}" "${plat}"
-
- session_begin "${root}" "${cmd_build_pkg_dir}" cmd_build_fini false
-
- cmd_build_build_deps="$(package_get_build_deps "${arch}" "${plat}")"
- if [ "x${cmd_build_build_deps}" != 'x' ]; then
- cmd_build_make_deps_pkg
- session_exec opkg install ../builddeps.opk
- fi
-
- session_exec opkbuild "${@}"
-
- cmd_build_fini
-
- session_end
-
- if [ "x${dev}" != 'x' ]; then
- block_umount "${root}"
- fi
-}
-
-cmd_build_make_deps_pkg()
-{
- local pkg_dir=
-
- pkg_dir="${cmd_build_root}$(session_dir)/builddeps"
- mkdir -p "${pkg_dir}/control" "${pkg_dir}/data"
- printf '2.0\n' >"${pkg_dir}/debian-binary"
- cat >"${pkg_dir}/control/control" <<-EOF
- Package: prokit-builddeps-$(session_id)
- Source: prokit
- Version: 1.0
- Architecture: all
- Platform: all
- Depends: ${cmd_build_build_deps}
- Description: Build dependencies metapackage generated by prokit
- EOF
- (cd "${pkg_dir}/data"; tar -czf ../data.tar.gz .)
- (cd "${pkg_dir}/control"; tar -czf ../control.tar.gz .)
- (cd "${pkg_dir}"; tar -czf ../builddeps.opk \
- 'debian-binary' 'data.tar.gz' 'control.tar.gz')
- rm -Rf "${pkg_dir}"
-}
-
-cmd_build_fini()
-{
- local session_dir=
- local f=
-
- session_dir="$(session_dir)"
-
- if [ "x${cmd_build_build_deps}" != 'x' ]; then
- session_exec opkg --autoremove remove \
- prokit-builddeps-$(session_id)
- rm "${cmd_build_root}${session_dir}/builddeps.opk"
- # Hack to avoid this code branch if the function is called again
- # in response to a signal.
- cmd_build_build_deps=''
- fi
-
- for f in "${cmd_build_root}${session_dir}/"*; do
- [ -e "${f}" ] || continue
- [ "x${f##*/}" = 'xwd' ] && continue
- mv "${f}" "${cmd_build_pkg_dir}/.."
- done
-}