Advertisement
PastersGonnaPaste

pacman-wrappers

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