iankelling.org
/
git
/
distro-functions
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
minor improvement on robustness
[distro-functions]
/
src
/
package-manager-abstractions
diff --git
a/src/package-manager-abstractions
b/src/package-manager-abstractions
index dece84830169562a1217de1a7b71f019c7b866ba..96e4f6db55335e3263e59aa9d702d87bb28bfa8d 100644
(file)
--- a/
src/package-manager-abstractions
+++ b/
src/package-manager-abstractions
@@
-26,7
+26,7
@@
if command -v yum &> /dev/null; then
$s yum -y install "$@"
}
# package find
$s yum -y install "$@"
}
# package find
- pf() {
+ pf
d
() {
local s; [[ $EUID != 0 ]] && s=sudo
$s yum search "$@"
}
local s; [[ $EUID != 0 ]] && s=sudo
$s yum search "$@"
}
@@
-100,7
+100,7
@@
elif command -v apt-get &>/dev/null; then
limittime=$(( now - 60*60*2 ))
for f in /etc/apt/sources.list /etc/apt/sources.list.d/*.list; do
if [[ -r $f ]]; then
limittime=$(( now - 60*60*2 ))
for f in /etc/apt/sources.list /etc/apt/sources.list.d/*.list; do
if [[ -r $f ]]; then
- t=$(stat -c %Y $f )
+ t=$(stat
-c %Y $f )
if (( t > limittime )); then
limittime=$t
fi
if (( t > limittime )); then
limittime=$t
fi
@@
-113,11
+113,15
@@
elif command -v apt-get &>/dev/null; then
pi() {
pcheck "$@" || return 0
pupdate
pi() {
pcheck "$@" || return 0
pupdate
- local s; [[ $EUID != 0 ]] && s=sudo
if [[ $- != *i* ]]; then
if [[ $- != *i* ]]; then
- echo pi "$@"
+ echo pi "$*"
+ fi
+ if [[ $EUID == 0 ]]; then
+ DEBIAN_FRONTEND=noninteractive apt-get -y install --purge --auto-remove "$@"
+ else
+ sudo DEBIAN_FRONTEND=noninteractive apt-get -y install --purge --auto-remove "$@"
fi
fi
- $s $PI_PREFIX apt-get -y install --purge --auto-remove "$@"
+
}
pi-nostart() {
}
pi-nostart() {
@@
-125,24
+129,35
@@
elif command -v apt-get &>/dev/null; then
pcheck "$@" || return 0
plock-wait
pupdate
pcheck "$@" || return 0
plock-wait
pupdate
- local s; [[ $EUID != 0 ]] && s=sudo
local f=/usr/sbin/policy-rc.d
local f=/usr/sbin/policy-rc.d
- $s dd of=$f 2>/dev/null <<EOF
+ if [[ $- != *i* ]]; then
+ echo pi-nostart "$@"
+ fi
+ if [[ $EUID == 0 ]]; then
+ dd of=$f status=none <<EOF
#!/bin/sh
exit 101
EOF
#!/bin/sh
exit 101
EOF
- $s chmod +x $f
- if [[ $- != *i* ]]; then
- echo pi-nostart "$@"
+ chmod +x $f
+ DEBIAN_FRONTEND=noninteractive apt-get -y install --purge --auto-remove "$@" || ret=$?
+ rm $f
+ else
+ sudo dd of=$f status=none <<EOF
+#!/bin/sh
+exit 101
+EOF
+ sudo chmod +x $f
+ sudo DEBIAN_FRONTEND=noninteractive apt-get -y install --purge --auto-remove "$@" || ret=$?
+ sudo rm $f
fi
fi
- $s apt-get -y install --purge --auto-remove "$@" || ret=$?
- $s rm $f
return $ret
}
return $ret
}
- pf() {
+ # package find description
+ pfd() {
# package name and descriptions
apt-cache search "$@"
}
# package name and descriptions
apt-cache search "$@"
}
+ # package find file
pff() {
local s; [[ $EUID != 0 ]] && s=sudo
# nice aptitude search from emacs shell. package description width as
pff() {
local s; [[ $EUID != 0 ]] && s=sudo
# nice aptitude search from emacs shell. package description width as
@@
-174,9
+189,6
@@
EOF
local s; [[ $EUID != 0 ]] && s=sudo
$s apt-get -y dist-upgrade --purge --auto-remove "$@"
$s apt-get -y autoremove
local s; [[ $EUID != 0 ]] && s=sudo
$s apt-get -y dist-upgrade --purge --auto-remove "$@"
$s apt-get -y autoremove
- if [[ -e /usr/sbin/checkrestart ]]; then
- $s /usr/sbin/checkrestart -p
- fi
}
# package info
pl() {
}
# package info
pl() {
@@
-187,6
+199,15
@@
EOF
fi
}
pfile() {
fi
}
pfile() {
+ # -a = search all repos
+ local -a arg all
+ all=false
+ case $1 in
+ -a)
+ all=true
+ shift
+ ;;
+ esac
local file=$1
# ucfq can tell us about config files which are not tracked
# with apt-file. but, for at least a few files I tested
local file=$1
# ucfq can tell us about config files which are not tracked
# with apt-file. but, for at least a few files I tested
@@
-197,11
+218,18
@@
EOF
# if [[ $file == /* ]] && ! ucfq -w $file | grep ::: &>/dev/null; then
# ucfq $file
# if [[ $file == /* ]] && ! ucfq -w $file | grep ::: &>/dev/null; then
# ucfq $file
- if [[ $file ==
*
/* ]]; then
- apt-file find -x "$file"\$
+ if [[ $file == /* ]]; then
+ dpkg -S "$file"
else
else
- apt-file find -x /"$file"\$
- update-alternatives --list "$file" 2>/dev/null
+ if ! $all; then
+ arg=(--filter-origins "$(positive-origins)")
+ fi
+ if [[ $file == /* ]]; then
+ apt-file "${arg[@]}" find -x /"$file"\$
+ update-alternatives --list "$file" 2>/dev/null
+ else
+ apt-file "${arg[@]}" find -x "$file"\$
+ fi
fi
}
pkgfiles() {
fi
}
pkgfiles() {
@@
-219,7
+247,7
@@
elif command -v pacman &>/dev/null; then
pi() {
pacaur -S --noconfirm --needed --noedit "$@"
}
pi() {
pacaur -S --noconfirm --needed --noedit "$@"
}
- pf() {
+ pf
d
() {
pacaur -Ss "$@"
}
pu() {
pacaur -Ss "$@"
}
pu() {