Advertisement
Guest User

gentoo-cleaner-0.0.2

a guest
Apr 9th, 2014
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.07 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # gentoo-cleaner-0.0.2
  4. # System config
  5.  
  6. ARCH="$(uname -m)"
  7. TMP_DIR="/tmp/garbage"
  8. TMP_RESULT="/var/log/garbage.log"
  9.  
  10. # Packages
  11. TMP_PACKAGE_PREFIX="package_files"
  12. TMP_PACKAGE_FILES="$TMP_DIR/${TMP_PACKAGE_PREFIX}"
  13. TMP_PACKAGE_FILES_SORT="$TMP_DIR/${TMP_PACKAGE_PREFIX}_sort"
  14. TMP_PACKAGE_FILES_RESULT="$TMP_DIR/${TMP_PACKAGE_PREFIX}_result"
  15.  
  16. # System
  17. TMP_SYSTEM_PREFIX="system_files"
  18. TMP_SYSTEM_FILES="$TMP_DIR/${TMP_SYSTEM_PREFIX}"
  19. TMP_SYSTEM_FILES_SORT="$TMP_DIR/${TMP_SYSTEM_PREFIX}_sort"
  20. TMP_SYSTEM_FILES_SORT="$TMP_DIR/${TMP_SYSTEM_PREFIX}_result"
  21.  
  22. if [ "${ARCH}" = "x86_64" ]; then
  23.     INCLUDE_PATH="/bin/ /etc/ /lib32/ /lib64/ /opt/ /sbin/ /usr/"
  24.     EXCLUDE_PATH="
  25.         /etc/local.d/
  26.         /etc/portage/
  27.         /etc/runlevels/
  28.         /lib64/modules
  29.         /usr/local/
  30.         /usr/portage/
  31.         /usr/src/
  32.         "
  33.     TMP_PACKAGE_FILES_SORT_LIB64="${TMP_PACKAGE_FILES_SORT}_lib64"
  34.     TMP_PACKAGE_FILES_SORT_LIB64_USR_LIB64="${TMP_PACKAGE_FILES_SORT}_lib64_usr_lib64"
  35. else
  36.     INCLUDE_PATH="/bin/ /etc/ /lib/ /opt/ /sbin/ /usr/"
  37.     EXCLUDE_PATH="
  38.         /etc/local.d/
  39.         /etc/portage/
  40.         /etc/runlevels/
  41.         /lib/modules/
  42.         /usr/local/
  43.         /usr/portage/
  44.         /usr/src/
  45.         "
  46. fi
  47.  
  48.  
  49. mkdir "${TMP_DIR}" 2> /dev/null
  50.  
  51. find /var/db/pkg/ -name CONTENTS -exec cat {} \; >> "$TMP_PACKAGE_FILES"
  52. awk '/^\/usr\/src/{print $2}' "$TMP_PACKAGE_FILES" | sort -u > "$TMP_PACKAGE_FILES_SORT"
  53. if [ "${ARCH}" = "x86_64" ]; then
  54.     cat "$TMP_PACKAGE_FILES_SORT" | sed "s/^\/lib\//\/lib64\//g" > $TMP_PACKAGE_FILES_SORT_LIB64
  55.     cat "$TMP_PACKAGE_FILES_SORT_LIB64" | sed "s/^\/usr\/lib\//\/usr\/lib64\//g" > $TMP_PACKAGE_FILES_SORT_LIB64_USR_LIB64
  56.     cat "$TMP_PACKAGE_FILES_SORT_LIB64_USR_LIB64" | sort -u > "$TMP_PACKAGE_FILES_RESULT"
  57. else
  58.     cp "$TMP_PACKAGE_FILES_SORT" "$TMP_PACKAGE_FILES_RESULT"
  59. fi
  60.  
  61. find $INCLUDE_PATH > $TMP_SYSTEM_FILES
  62.  
  63. TMP_SORT="cat $TMP_SYSTEM_FILES"
  64. for E in $EXCLUDE_PATH ; do
  65.     TMP_SORT="$TMP_SORT | grep -v \"^$E\""
  66. done
  67.  
  68. eval "$TMP_SORT" | sort -u > $TMP_SYSTEM_FILES_SORT
  69. diff "$TMP_SYSTEM_FILES_SORT" "$TMP_PACKAGE_FILES_RESULT" | grep "^<" | sed "s/^< //g" > "$TMP_RESULT"
  70. rm -rf "$TMP_DIR"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement