#!/bin/bash # # bash feeds/packages/lang/ruby/ruby_missingfiles staging_dir/target-x86_64_musl/ bin/packages/x86_64/packages/*ruby*_3.1.2* # function list_staging_files { cd "$1"; find \ \( \( -name "root-*" -or -name "packages" -or -name "stamp" -or -name "pkginfo" -or -name "host" -or -name man \) -prune \) -or -true \ \( \ -path "*ruby*" -or \ -name "bundle" -or \ -name "bundler" -or \ -name "erb" -or \ -name "gem" -or \ -name "irb" -or \ -name "racc" -or \ -name "racc2y" -or \ -name "rake" -or \ -name "rbs" -or \ -name "rdbg" -or \ -name "rdoc" -or \ -name "ri" -or \ -name "syntax_suggest" -or \ -name "testrb" -or \ -name "typeprof" -or \ -name "y2racc" \ \) \ -not -path "*/usr/lib/ruby/gems/*/cache/*" \ -not -name "*test_case.rb" \ -not -name "*.rdoc" \ -not -name "*.doc" \ -not -name "*.md" \ -not -name "*.txt" \ -not -name "BSDL" \ -not -name "COPYING" \ -not -name "*.travis.yml" \ -not -name "Rakefile" \ -not -path "*/ext/java/*" \ -not -name "gem.build_complete" \ -not -regex ".*/usr/lib/ruby/gems/[^/]*/gems/[^/]*/benchmark/.*" \ -not -regex ".*/usr/lib/ruby/gems/[^/]*/gems/[^/]*/evaluation/.*" \ -not -regex ".*/usr/lib/ruby/gems/[^/]*/gems/[^/]*/sample/.*" \ -not -regex ".*/usr/lib/ruby/gems/[^/]*/gems/[^/]*/test/.*" \ -not -regex ".*/usr/lib/ruby/gems/[^/]*/gems/[^/]*/doc/.*" \ -not -type d \ -print | sort | sed -e 's,^\./,/,' } function list_ipkg_files { for OPKG; do tar --to-stdout -xzf "$OPKG" ./data.tar.gz | tar tzv | grep -v ^d | sed -e 's,.* \./,./,;s/ -> .*//' done | sort -u | grep -v ./usr/lib/ruby/ruby...-bin } function list_apk_file { local pkg $HOST_STAGING_DIR/bin/apk adbdump --allow-untrusted "$@" | sed -e '/|$/{N;s/|\n *//}' | awk '/^ - name: / { dir=$3 } /^ - name:/ { printf "%s/%s\n", dir, $3}' | grep -v ^lib/apk/packages | sort -u | sed -e 's,^,/,' | grep -v /usr/lib/ruby/ruby...-bin } set -e : ${1:?First arg is staging_dir} : ${2:?Second and following args are ruby ipkg packages} STAGING_DIR=$1; shift HOST_STAGING_DIR=$STAGING_DIR/../host (cd "$STAGING_DIR" ) if ! [ -e "$1" ]; then echo "$1 does not exist!" exit 1 fi printf '%-62s %-62s\n' "Installed in Staging" "From Packages Files" #diff -d -y <(list_staging_files "$STAGING_DIR") <(list_ipkg_files "$@") -W $COLUMNS diff -d -y <(list_staging_files "$STAGING_DIR") <(list_apk_file "$@") -W $COLUMNS