#!/bin/bash
-# Copyright (C) 2014 Ian Kelling
+# I, Ian Kelling, follow the GNU license recommendations at
+# https://www.gnu.org/licenses/license-recommendations.en.html. They
+# recommend that small programs, < 300 lines, be licensed under the
+# Apache License 2.0. This file contains or is part of one or more small
+# programs. If a small program grows beyond 300 lines, I plan to switch
+# its license to GPL.
+
+# Copyright 2024 Ian Kelling
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
$s yum -y install "$@"
}
# package find
- pf() {
+ pfd() {
local s; [[ $EUID != 0 ]] && s=sudo
$s yum search "$@"
}
echo pi-nostart "$@"
fi
if [[ $EUID == 0 ]]; then
- dd of=$f 2>/dev/null <<EOF
+ dd of=$f status=none <<EOF
#!/bin/sh
exit 101
EOF
DEBIAN_FRONTEND=noninteractive apt-get -y install --purge --auto-remove "$@" || ret=$?
rm $f
else
- sudo dd of=$f 2>/dev/null <<EOF
+ sudo dd of=$f status=none <<EOF
#!/bin/sh
exit 101
EOF
fi
return $ret
}
- pf() {
+ # package find description
+ pfd() {
# 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
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() {
}
pfile() {
# -a = search all repos
- local arg
- if [[ $1 != -a ]]; then
- arg="--filter-origins $(positive-origins)"
- fi
+ 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
if [[ $file == /* ]]; then
dpkg -S "$file"
- elif [[ $file == */* ]]; then
- apt-file $arg find -x "$file"\$
else
- apt-file $arg 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() {
if dpkg -s "$1" &>/dev/null; then
- dpkg-query -L $1
+ dpkg-query -L $1 | while read -r l; do [[ -f $l ]] && printf "%s\n" "$l"; done
else
apt-file -x list "^$1$"
fi
pi() {
pacaur -S --noconfirm --needed --noedit "$@"
}
- pf() {
+ pfd() {
pacaur -Ss "$@"
}
pu() {