summaryrefslogtreecommitdiffstats
path: root/contrib/pacdiff.sh.in
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2016-10-09 14:52:27 +0200
committerAllan McRae <allan@archlinux.org>2016-10-10 02:38:05 +0200
commit0c99eabd50752310f42ec808c8734a338122ec86 (patch)
tree499801a8c046001ddab0b11439e9e948b257d726 /contrib/pacdiff.sh.in
parent2e76c184aac74c4848fa5ee092fe54c9954c4054 (diff)
downloadpacman-0c99eabd50752310f42ec808c8734a338122ec86.tar.gz
pacman-0c99eabd50752310f42ec808c8734a338122ec86.tar.xz
Remove contrib
The contrib directory takes too much of the pacman developer's limited time, which could be better spent developing and reviewing patches for the primary projects. The community can pick this up in a separate repository if wanted. Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'contrib/pacdiff.sh.in')
-rw-r--r--contrib/pacdiff.sh.in194
1 files changed, 0 insertions, 194 deletions
diff --git a/contrib/pacdiff.sh.in b/contrib/pacdiff.sh.in
deleted file mode 100644
index dff2115a..00000000
--- a/contrib/pacdiff.sh.in
+++ /dev/null
@@ -1,194 +0,0 @@
-#!/bin/bash
-# pacdiff : a simple pacnew/pacsave updater
-#
-# Copyright (c) 2007 Aaron Griffin <aaronmgriffin@gmail.com>
-# Copyright (c) 2013-2016 Pacman Development Team <pacman-dev@archlinux.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-
-shopt -s extglob
-
-declare -r myname='pacdiff'
-declare -r myver='@PACKAGE_VERSION@'
-
-diffprog=${DIFFPROG:-'vim -d'}
-diffsearchpath=${DIFFSEARCHPATH:-/etc}
-USE_COLOR='y'
-declare -a oldsaves
-declare -i USE_FIND=0 USE_LOCATE=0 USE_PACDB=0 OUTPUTONLY=0
-
-m4_include(../scripts/library/output_format.sh)
-
-usage() {
- cat <<EOF
-${myname} (pacman) v${myver}
-
-A simple program to merge or remove pacnew/pacsave files.
-
-Usage: $myname [-l | -f | -p] [--nocolor]
-
-Search Options: select one (default: --pacmandb)
- -l/--locate scan using locate
- -f/--find scan using find
- -p/--pacmandb scan active config files from pacman database
-
-General Options:
- -o/--output print files instead of merging them
- --nocolor remove colors from output
-
-Environment Variables:
- DIFFPROG override the merge program: (default: 'vim -d')
- DIFFSEARCHPATH override the search path. (only when using find)
- (default: /etc)
-
-Example: DIFFPROG=meld DIFFSEARCHPATH="/boot /etc /usr" $myname
-Example: $myname --output --locate
-
-EOF
-}
-
-version() {
- printf "%s %s\n" "$myname" "$myver"
- echo 'Copyright (C) 2007 Aaron Griffin <aaronmgriffin@gmail.com>'
- echo 'Copyright (C) 2013-2016 Pacman Development Team <pacman-dev@archlinux.org>'
-}
-
-print_existing() {
- [[ -f "$1" ]] && printf '%s\0' "$1"
-}
-
-print_existing_pacsave(){
- for f in "${1}"?(.+([0-9])); do
- [[ -f $f ]] && printf '%s\0' "$f"
- done
-}
-
-cmd() {
- if (( USE_LOCATE )); then
- locate -0 -e -b \*.pacnew \*.pacorig \*.pacsave '*.pacsave.[0-9]*'
- elif (( USE_FIND )); then
- find $diffsearchpath \( -name \*.pacnew -o -name \*.pacorig -o -name \*.pacsave -o -name '*.pacsave.[0-9]*' \) -print0
- elif (( USE_PACDB )); then
- awk '/^%BACKUP%$/ {
- while (getline) {
- if (/^$/) { nextfile }
- print $1
- }
- }' "${pac_db}"/*/files | while read -r bkup; do
- print_existing "/$bkup.pacnew"
- print_existing "/$bkup.pacorig"
- print_existing_pacsave "/$bkup.pacsave"
- done
- fi
-}
-
-while [[ -n "$1" ]]; do
- case "$1" in
- -l|--locate)
- USE_LOCATE=1;;
- -f|--find)
- USE_FIND=1;;
- -p|--pacmandb)
- USE_PACDB=1;;
- -o|--output)
- OUTPUTONLY=1;;
- --nocolor)
- USE_COLOR='n';;
- -V|--version)
- version; exit 0;;
- -h|--help)
- usage; exit 0;;
- *)
- usage; exit 1;;
- esac
- shift
-done
-
-m4_include(../scripts/library/term_colors.sh)
-
-if ! type -p ${diffprog%% *} >/dev/null && (( ! OUTPUTONLY )); then
- error "Cannot find the $diffprog binary required for viewing differences."
- exit 1
-fi
-
-case $(( USE_FIND + USE_LOCATE + USE_PACDB )) in
- 0) USE_PACDB=1;; # set the default search option
- [^1]) error "Only one search option may be used at a time"
- usage; exit 1;;
-esac
-
-if (( USE_PACDB )); then
- if [[ ! -r @sysconfdir@/pacman.conf ]]; then
- error "unable to read @sysconfdir@/pacman.conf"
- usage; exit 1
- fi
-
- eval $(awk '/DBPath/ {print $1$2$3}' @sysconfdir@/pacman.conf)
- pac_db="${DBPath:-@localstatedir@/lib/pacman/}local"
- if [[ ! -d "${pac_db}" ]]; then
- error "unable to read pacman database %s". "${pac_db}"
- usage; exit 1
- fi
-fi
-
-# see http://mywiki.wooledge.org/BashFAQ/020
-while IFS= read -u 3 -r -d '' pacfile; do
- file="${pacfile%.pac*}"
- file_type="pac${pacfile##*.pac}"
-
- if (( OUTPUTONLY )); then
- echo "$pacfile"
- continue
- fi
-
- # add matches for pacsave.N to oldsaves array, do not prompt
- if [[ $file_type = pacsave.+([0-9]) ]]; then
- oldsaves+=("$pacfile")
- continue
- fi
-
- msg "%s file found for %s" "$file_type" "$file"
- if [ ! -f "$file" ]; then
- warning "$file does not exist"
- rm -iv "$pacfile"
- continue
- fi
-
- if cmp -s "$pacfile" "$file"; then
- msg2 "Files are identical, removing..."
- rm -v "$pacfile"
- else
- ask "(V)iew, (S)kip, (R)emove %s, (O)verwrite with %s, (Q)uit: [v/s/r/o/q] " "$file_type" "$file_type"
- while read c; do
- case $c in
- q|Q) exit 0;;
- r|R) rm -v "$pacfile"; break ;;
- o|O) mv -v "$pacfile" "$file"; break ;;
- v|V)
- $diffprog "$pacfile" "$file"
- ask "(V)iew, (S)kip, (R)emove %s, (O)verwrite with %s, (Q)uit: [v/s/r/o/q] " "$file_type" "$file_type";
- continue ;;
- s|S) break ;;
- *) ask "Invalid answer. Try again: [v/s/r/o/q] "; continue ;;
- esac
- done
- fi
-done 3< <(cmd)
-
-(( ${#oldsaves[@]} )) && warning "Ignoring %s" "${oldsaves[@]}"
-
-exit 0
-
-# vim: set noet: