#!/bin/sh set -e ARCH= PLAT= main() { ARCH="$(cat /etc/proteanos_arch)" PLAT="$(cat /etc/proteanos_plat)" cat <<-EOF Installing packages in stage 1... ================================= EOF install_packages } log() { local msg i msg="$(printf "${@}")" printf '\n%s\n' "${msg}" i=0 while [ ${i} -lt ${#msg} ]; do printf '-' i=$(($i + 1)) done printf '\n\n' } install_packages() { local opk pkg elf_interp [ -d root ] && rm -Rf root mkdir root cd root for opk in ../pkg/*_${ARCH}_${PLAT}.opk ../pkg/*_${ARCH}_all.opk \ ../pkg/*_all_${PLAT}.opk ../pkg/*_all_all.opk; do [ -f "${opk}" ] || continue pkg="${opk#../pkg/}" log 'Installing package %s...' "${pkg%%_*}" tar -xzOf "${opk}" data.tar.gz | tar -xz done elf_interp="$(readelf -l bin/busybox | sed -n \ 's|^.*\[Requesting program interpreter: /\(.*\)\].*$|\1|p')" mkdir -p "${elf_interp%/*}" ln -sf "/lib/${ARCH}/${elf_interp##*/}" "${elf_interp}" cd .. } main "${@}"