Advertisement
PastersGonnaPaste

pacman-wrappers

Oct 11th, 2011
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.45 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. function pacman-update {
  4.     local LOGPREFIX="${LOGPREFIX:-/var/paclog}"
  5.     if ! [[ -d "${LOGPREFIX}" ]]; then
  6.         mkdir -m 0755 "${LOGPREFIX}"
  7.     fi
  8.     (
  9.     set -e
  10.     local curdate=$(date +%s)
  11.     pacman -Q > "${LOGPREFIX}/pacman-Q.pre-update.${curdate}.pkglist"
  12.     pacman -Sy
  13.     pacman -Q > "${LOGPREFIX}/pacman-Q.post-update-all.${curdate}.pkglist"
  14.     if cmp -s "${LOGPREFIX}/pacman-Q.pre-update-all.${curdate}.pkglist" \
  15.               "${LOGPREFIX}/pacman-Q.post-update-all.${curdate}.pkglist";
  16.     then
  17.         ln -f "${LOGPREFIX}/pacman-Q.pre-update-all.${curdate}.pkglist" \
  18.               "${LOGPREFIX}/pacman-Q.post-update-all.${curdate}.pkglist"
  19.     fi
  20.     ) 2>&1 | tee -a "${LOGPREFIX}/pacman-global.log"
  21. }
  22.  
  23. function pacman-upgrade-all {
  24.     local LOGPREFIX="${LOGPREFIX:-/var/paclog}"
  25.     if ! [[ -d "${LOGPREFIX}" ]]; then
  26.         mkdir -m 0755 "${LOGPREFIX}"
  27.     fi
  28.     (
  29.     set -e
  30.     local curdate=$(date +%s)
  31.     pacman -Q > "${LOGPREFIX}/pacman-Q.pre-upgrade-all.${curdate}.pkglist"
  32.     pacman -Q | awk '{print $1}' | xargs pacman-fetch
  33.     pacman -Su --noconfirm
  34.     pacman -Q > "${LOGPREFIX}/pacman-Q.post-upgrade-all.${curdate}.pkglist"
  35.     if cmp -s "${LOGPREFIX}/pacman-Q.pre-upgrade-all.${curdate}.pkglist" \
  36.               "${LOGPREFIX}/pacman-Q.post-upgrade-all.${curdate}.pkglist";
  37.     then
  38.         ln -f "${LOGPREFIX}/pacman-Q.pre-upgrade-all.${curdate}.pkglist" \
  39.               "${LOGPREFIX}/pacman-Q.post-upgrade-all.${curdate}.pkglist"
  40.     fi
  41.     ) 2>&1 | tee -a "${LOGPREFIX}/pacman-global.log"
  42. }
  43.  
  44. function pacman-upgrade-explicit {
  45.     local LOGPREFIX="${LOGPREFIX:-/var/paclog}"
  46.     if ! [[ -d "${LOGPREFIX}" ]]; then
  47.         mkdir -m 0755 "${LOGPREFIX}"
  48.     fi
  49.     (
  50.     set -e
  51.     local curdate=$(date +%s)
  52.     pacman -Q > "${LOGPREFIX}/pacman-Q.pre-upgrade-explicit.${curdate}.pkglist"
  53.     pacman -Qe | awk '{print $1}' | xargs pacman-fetch
  54.     pacman -Qe | awk '{print $1}' | xargs pacman -S --noconfirm --needed
  55.     pacman -Q > "${LOGPREFIX}/pacman-Q.post-upgrade-explicit.${curdate}.pkglist"
  56.     if cmp -s "${LOGPREFIX}/pacman-Q.pre-upgrade-explicit.${curdate}.pkglist" \
  57.               "${LOGPREFIX}/pacman-Q.post-upgrade-explicit.${curdate}.pkglist";
  58.     then
  59.         ln -f "${LOGPREFIX}/pacman-Q.pre-upgrade-explicit.${curdate}.pkglist" \
  60.               "${LOGPREFIX}/pacman-Q.post-upgrade-explicit.${curdate}.pkglist"
  61.     fi
  62.     ) 2>&1 | tee -a "${LOGPREFIX}/pacman-global.log"
  63. }
  64.  
  65. function pacman-search {
  66.     pacman -Ss "$@"
  67. }
  68.  
  69. function pacman-fetch {
  70.     local CacheDir="${CacheDir:-/var/cache/pacman/pkg}"
  71.     local XferCommand="${XferCommand:-/usr/bin/wget -P "${CacheDir}"}"
  72.    if aria2c -v 2>&1 > /dev/null; then
  73.        local XferCommand="${XferCommand:-/usr/bin/aria2c -j 5 -s 5 --allow-overwrite=true --auto-file-renaming=false -d "${CacheDir}"}"
  74.     fi
  75.     pacman -Sp --noconfirm --needed "$@" | grep '^[^ ]' |
  76.     xargs --no-run-if-empty ${XferCommand}
  77. }
  78.  
  79. function pacman-install {
  80.     local LOGPREFIX="${LOGPREFIX:-/var/paclog}"
  81.     if ! [[ -d "${LOGPREFIX}" ]]; then
  82.         mkdir -m 0755 "${LOGPREFIX}"
  83.     fi
  84.     (
  85.     set -e
  86.     local curdate=$(date +%s)
  87.     pacman -Q > "${LOGPREFIX}/pacman-Q.pre-install.${curdate}.pkglist"
  88.     pacman-fetch "$@"
  89.     pacman -S --asexplicit --noconfirm --needed "$@"
  90.     pacman -Q > "${LOGPREFIX}/pacman-Q.post-install.${curdate}.pkglist"
  91.     if cmp -s "${LOGPREFIX}/pacman-Q.pre-install.${curdate}.pkglist" \
  92.               "${LOGPREFIX}/pacman-Q.post-install.${curdate}.pkglist";
  93.     then
  94.         ln -f "${LOGPREFIX}/pacman-Q.pre-install.${curdate}.pkglist" \
  95.               "${LOGPREFIX}/pacman-Q.post-install.${curdate}.pkglist"
  96.     fi
  97.     ) 2>&1 | tee -a "${LOGPREFIX}/pacman-global.log"
  98. }
  99.  
  100. function pacman-remove {
  101.     local LOGPREFIX="${LOGPREFIX:-/var/paclog}"
  102.     if ! [[ -d "${LOGPREFIX}" ]]; then
  103.         mkdir -m 0755 "${LOGPREFIX}"
  104.     fi
  105.     (
  106.     set -e
  107.     local curdate=$(date +%s)
  108.     pacman -Q > "${LOGPREFIX}/pacman-Q.pre-remove.${curdate}.pkglist"
  109.     pacman -R --noconfirm "$@"
  110.     pacman -Q > "${LOGPREFIX}/pacman-Q.post-remove.${curdate}.pkglist"
  111.     if cmp -s "${LOGPREFIX}/pacman-Q.pre-remove.${curdate}.pkglist" \
  112.               "${LOGPREFIX}/pacman-Q.post-remove.${curdate}.pkglist";
  113.     then
  114.         ln -f "${LOGPREFIX}/pacman-Q.pre-remove.${curdate}.pkglist" \
  115.               "${LOGPREFIX}/pacman-Q.post-remove.${curdate}.pkglist"
  116.     fi
  117.     ) 2>&1 | tee -a "${LOGPREFIX}/pacman-global.log"
  118. }
  119.  
  120.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement