|
#!/bin/bash
|
|
#
|
|
# bash feeds/packages/lang/ruby/ruby_missingfiles staging_dir/target-i386_i486_musl-1.1.11/ bin/x86/packages/packages/*ruby*_2.3.0*
|
|
#
|
|
|
|
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 "erb" -or -name "gem" -or -name "irb" -or -name "rake" -or -name "rdoc" -or -name "ri" -or -name "testrb" \) \
|
|
-not -path "*/usr/include/*" -not -path "*/usr/lib/pkgconfig/*" -not -path "*/usr/lib/lib*.a" \
|
|
-not -path "*/usr/lib/ruby/gems/*/cache/*" \
|
|
-not -path "*/usr/lib/libruby.so" \
|
|
-not -name "*test_case.rb" \
|
|
-not -name "*.rdoc" \
|
|
-not -name "*.doc" \
|
|
-not -name "*.md" \
|
|
-not -name "*.txt" \
|
|
-not -name "*.travis.yml" \
|
|
-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
|
|
}
|
|
|
|
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
|
|
}
|
|
|
|
|
|
|
|
set -e
|
|
: ${1:?First arg is staging_dir}
|
|
: ${2:?Second and following args are ruby ipkg packages}
|
|
STAGING_DIR=$1; shift
|
|
(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 "$@")
|
|
|