#! /usr/bin/env bash system_name="${1}" exe_file="${2}" bundle_dir="${3}" case "${system_name}" in 'windows') bundle_dir="$(cygpath --unix "${bundle_dir}")" exe_file="$(cygpath --unix "${exe_file}")" ntldd --recursive "${exe_file}" \ | egrep -i '\.dll => [A-Z]:\\msys64\\' \ | sed -e 's/ (0x[0-9a-f]*)$//;s/^.* => //' \ | cygpath --unix --file - \ | while read dll_file do dll_basename="$(basename "${dll_file}")" cp -n --preserve=timestamps "${dll_file}" "${bundle_dir}/${dll_basename}" done ;; *) printf 'ERROR: unsupported system: %s\n' "${system_name}" >&2 exit 1 ;; esac