| #!/bin/bash |
| |
| set -o errexit |
| set -o errtrace |
| set -o pipefail |
| set -o nounset |
| |
| readonly progpath="$(realpath "$0")" |
| readonly progname="$(basename "$progpath")" |
| readonly progdir="$(dirname "$progpath")" |
| if [ -d "pkg/${MINGW_PACKAGE_PREFIX}-ruby" ]; then |
| readonly _pkgdir="pkg/${MINGW_PACKAGE_PREFIX}-ruby${MINGW_PREFIX}/" |
| else |
| readonly _pkgdir="pkg/${MINGW_PACKAGE_PREFIX}-ruby${MINGW_PREFIX}/" |
| echo "${_pkgdir} does not exist. Build the package before running this script." |
| exit |
| fi |
| |
| ruby_default() { |
| for f in ${_pkgdir}/lib/ruby/gems/*/specifications/default/*; do |
| if [ -f "$f" ]; then |
| echo $(basename ${f%.*}) | sed -r 's/(.*)-/\1=/' |
| fi |
| done |
| } |
| |
| ruby_bundled() { |
| for f in ${_pkgdir}/lib/ruby/gems/*/cache//*; do |
| if [ -f "$f" ]; then |
| echo $(basename ${f%.*}) | sed -r 's/(.*)-/\1=/' |
| fi |
| done |
| } |
| |
| usage() { |
| echo " Usage: $progname" |
| echo |
| echo " ruby and gawk (mingw-w64) needs to be installed" |
| echo |
| [[ "${1:-}" =~ ^[0-9]{1,3}$ ]] && exit $1 |
| } |
| |
| command -v gawk &>/dev/null || usage 1 |
| |
| declare -r tmpfile="$(mktemp)" |
| ruby_bundled \ |
| | while IFS='' read -r line; do |
| echo "$line" |
| done | sort -f > "$tmpfile" |
| |
| ruby_default \ |
| | while IFS='' read -r line; do |
| echo "$line" |
| done | sort -f >> "$tmpfile" |
| |
| mv "PKGBUILD" "PKGBUILD~" |
| |
| gawk ' |
| /^provides=/ { s = 1 } |
| s && /)/ { |
| s = 0 |
| print "provides=(" |
| while ( (getline line < "'"$tmpfile"'") > 0 ) { |
| print " \"${MINGW_PACKAGE_PREFIX}-ruby-" line "\"" |
| } |
| print ")" |
| next |
| } |
| s { next } |
| ! s { print } |
| ' "PKGBUILD~" > "PKGBUILD" |
| |
| rm "$tmpfile" |
| |
| # vim: set ts=4 sw=4 et ai: |