Skip to content

Instantly share code, notes, and snippets.

@evanjs
Created March 29, 2018 15:47
Show Gist options
  • Save evanjs/3abd7e9c7aac39eb6dcf3b156c7dc56f to your computer and use it in GitHub Desktop.
Save evanjs/3abd7e9c7aac39eb6dcf3b156c7dc56f to your computer and use it in GitHub Desktop.
Retrieve unique list of files installed by one or more Gentoo packages
#!/usr/bin/env sh
# returns a unique list of directories used by the provided packages
if [[ -z "$1" ]]; then echo "Please provide at least one package name to query"; exit 1; fi
excludes="doc/
man/
themes/
locale/
include/
log/"
for var in "$@"
do
new_depends=`qdepends -rC ${var}`
depends+=${new_depends}
done
dep_names=`echo $* | sed 's/ / and /g'`
packages=`echo $depends | tr ' ' '\n' | cut -d '[' -f -1 | cut -d ':' -f 1 | cut -d '=' -f 2 | cut -d '<' -f 2 | xargs qatom -F "%{CATEGORY}/%{PN}" | sort | uniq`
for p in $packages
do
dep_files+=`qlist -d $p`
done
final_files=`echo ${dep_files} | tr ' ' '\n' | sort | uniq | grep -vF "$excludes"`
echo "$final_files"
final_files_count=`echo $final_files | tr ' ' '\n' | wc -l`
echo "Total files needed for "$dep_names": "${final_files_count}""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment