| #!/usr/bin/env bash |
| set -e |
| |
| rootfsDir="$1" |
| shift |
| |
| busybox="$(which busybox 2>/dev/null || true)" |
| if [ -z "$busybox" ]; then |
| echo >&2 'error: busybox: not found' |
| echo >&2 ' install it with your distribution "busybox-static" package' |
| exit 1 |
| fi |
| if ! ldd "$busybox" 2>&1 | grep -q 'not a dynamic executable'; then |
| echo >&2 "error: '$busybox' appears to be a dynamic executable" |
| echo >&2 ' you should install your distribution "busybox-static" package instead' |
| exit 1 |
| fi |
| |
| mkdir -p "$rootfsDir/bin" |
| rm -f "$rootfsDir/bin/busybox" # just in case |
| cp "$busybox" "$rootfsDir/bin/busybox" |
| |
| ( |
| cd "$rootfsDir" |
| |
| IFS=$'\n' |
| modules=( $(bin/busybox --list-modules) ) |
| unset IFS |
| |
| for module in "${modules[@]}"; do |
| mkdir -p "$(dirname "$module")" |
| ln -sf /bin/busybox "$module" |
| done |
| ) |