Advertisement
PastersGonnaPaste

pacman-wrappers

Oct 11th, 2011
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.33 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/aria2c -j 5 -s 5 --allow-overwrite=true --auto-file-renaming=false -d "${CacheDir}"}"
  72.    pacman -Sp --noconfirm --needed "$@" | grep '^[^ ]' |
  73.    xargs --no-run-if-empty ${XferCommand}
  74. }
  75.  
  76. function pacman-install {
  77.    local LOGPREFIX="${LOGPREFIX:-/var/paclog}"
  78.    if ! [[ -d "${LOGPREFIX}" ]]; then
  79.        mkdir -m 0755 "${LOGPREFIX}"
  80.    fi
  81.    (
  82.    set -e
  83.    local curdate=$(date +%s)
  84.    pacman -Q > "${LOGPREFIX}/pacman-Q.pre-install.${curdate}.pkglist"
  85.    pacman-fetch "$@"
  86.    pacman -S --asexplicit --noconfirm --needed "$@"
  87.    pacman -Q > "${LOGPREFIX}/pacman-Q.post-install.${curdate}.pkglist"
  88.    if cmp -s "${LOGPREFIX}/pacman-Q.pre-install.${curdate}.pkglist" \
  89.              "${LOGPREFIX}/pacman-Q.post-install.${curdate}.pkglist";
  90.    then
  91.        ln -f "${LOGPREFIX}/pacman-Q.pre-install.${curdate}.pkglist" \
  92.              "${LOGPREFIX}/pacman-Q.post-install.${curdate}.pkglist"
  93.    fi
  94.    ) 2>&1 | tee -a "${LOGPREFIX}/pacman-global.log"
  95. }
  96.  
  97. function pacman-remove {
  98.    local LOGPREFIX="${LOGPREFIX:-/var/paclog}"
  99.    if ! [[ -d "${LOGPREFIX}" ]]; then
  100.        mkdir -m 0755 "${LOGPREFIX}"
  101.    fi
  102.    (
  103.    set -e
  104.    local curdate=$(date +%s)
  105.    pacman -Q > "${LOGPREFIX}/pacman-Q.pre-remove.${curdate}.pkglist"
  106.    pacman -R --noconfirm "$@"
  107.    pacman -Q > "${LOGPREFIX}/pacman-Q.post-remove.${curdate}.pkglist"
  108.    if cmp -s "${LOGPREFIX}/pacman-Q.pre-remove.${curdate}.pkglist" \
  109.              "${LOGPREFIX}/pacman-Q.post-remove.${curdate}.pkglist";
  110.    then
  111.        ln -f "${LOGPREFIX}/pacman-Q.pre-remove.${curdate}.pkglist" \
  112.              "${LOGPREFIX}/pacman-Q.post-remove.${curdate}.pkglist"
  113.    fi
  114.    ) 2>&1 | tee -a "${LOGPREFIX}/pacman-global.log"
  115. }
  116.  
  117.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement