| version 1.4, 2021/10/05 01:49:17 |
version 1.6, 2021/10/14 02:39:43 |
|
|
| done |
done |
| } |
} |
| |
|
| |
# do_as, unpriv, and unpriv2 are from install.sub |
| |
|
| |
# Run a command ($2+) as unprivileged user ($1). |
| |
# Take extra care that after "cmd" no "user" processes exist. |
| |
# |
| |
# Optionally: |
| |
# - create "file" and chown it to "user" |
| |
# - after "cmd", chown "file" back to root |
| |
# |
| |
# Usage: do_as user [-f file] cmd |
| |
do_as() { |
| |
(( $# >= 2 )) || return |
| |
|
| |
local _file _rc _user=$1 |
| |
shift |
| |
|
| |
if [[ $1 == -f ]]; then |
| |
_file=$2 |
| |
shift 2 |
| |
fi |
| |
|
| |
if [[ -n $_file ]]; then |
| |
>$_file |
| |
chown "$_user" "$_file" |
| |
fi |
| |
|
| |
doas -u "$_user" "$@" |
| |
_rc=$? |
| |
|
| |
while doas -u "$_user" kill -9 -1 2>/dev/null; do |
| |
echo "Processes still running for user $_user after: $@" |
| |
sleep 1 |
| |
done |
| |
|
| |
[[ -n $_file ]] && chown root "$_file" |
| |
|
| |
return $_rc |
| |
} |
| |
|
| |
unpriv() { |
| |
do_as _sndio "$@" |
| |
} |
| |
|
| |
unpriv2() { |
| |
do_as _file "$@" |
| |
} |
| |
|
| set -A _KERNV -- $( scan_dmesg '/^OpenBSD \([1-9][0-9]*\.[0-9]\)\([^ ]*\) .*/ { s//\1 \2/p; q; }' ) |
set -A _KERNV -- $( scan_dmesg '/^OpenBSD \([1-9][0-9]*\.[0-9]\)\([^ ]*\) .*/ { s//\1 \2/p; q; }' ) |
| VNAME=${_KERNV[0]} |
VNAME=${_KERNV[0]} |
| OSDIR=$VNAME |
OSDIR=$VNAME |
|
|
| last='' |
last='' |
| ftp -D "Detecting" -Vmo- $PATTERNS | |
ftp -D "Detecting" -Vmo- $PATTERNS | |
| while read d m; do |
while read d m; do |
| grep=fgrep |
grep=grep |
| [ "$last" = "$d" ] && continue |
[ "$last" = "$d" ] && continue |
| [ "$m" ] || m="^$d[0-9][0-9]* at " |
[ "$m" ] || m="^$d[0-9][0-9]* at " |
| [ "$m" != "${m#^}" ] && grep=grep |
[ "$m" = "${m#^}" ] && grep=fgrep |
| $grep -q "$m" /var/run/dmesg.boot || continue |
$grep -q "$m" /var/run/dmesg.boot || continue |
| echo $d |
echo $d |
| last=$d |
last=$d |