Files

20 lines
757 B
Bash
Raw Permalink Normal View History

#!/bin/bash
# Extracts plain executables and shared libraries from built .deb artifacts.
set -euo pipefail
src=$(realpath "${1:?artifact directory required}")
out=$(realpath "${2:?output binary directory required}")
extract=$(mktemp -d)
trap 'rm -rf "$extract"' EXIT
shopt -s nullglob
debs=("$src"/*.deb)
[[ ${#debs[@]} -gt 0 ]] || { echo 'No .deb files found to extract' >&2; exit 1; }
for deb in "${debs[@]}"; do
dpkg-deb -x "$deb" "$extract"
done
mkdir -p "$out"
for dir in "$extract/usr/bin" "$extract/usr/sbin"; do
[[ -d $dir ]] || continue
find "$dir" -mindepth 1 -maxdepth 1 -type f -exec cp {} "$out/" \;
done
[[ -d $extract/usr/lib ]] && find "$extract/usr/lib" -mindepth 2 -maxdepth 2 -type f -name '*.so*' -exec cp {} "$out/" \;
true