aboutsummaryrefslogtreecommitdiff
path: root/graphics/sane-backends/files/pkg-install.in
diff options
context:
space:
mode:
authorBruce M Simpson <bms@FreeBSD.org>2010-02-07 20:34:20 +0000
committerBruce M Simpson <bms@FreeBSD.org>2010-02-07 20:34:20 +0000
commite8f6999c1b3eea007da83a6e4388deb0e3bf03fb (patch)
treea62cfc6bce657b426d86d5694ed89685d5734b53 /graphics/sane-backends/files/pkg-install.in
parent2f886f4efb083c9c04e0436f4f685170949d67af (diff)
downloadports-e8f6999c1b3eea007da83a6e4388deb0e3bf03fb.tar.gz
ports-e8f6999c1b3eea007da83a6e4388deb0e3bf03fb.zip
Add an RC script for saned, and borrow machinery for creating
a dedicated sandbox user account from the nullmailer port. Also add a pkg-message which describes how to tie down a USB scanner to this sandbox using devd(8) in FreeBSD 8, as well as describing what config files likely need editing. Note: This text probably belongs in the FreeBSD Handbook. Bump PORTREVISION. Reviewed by: dougb (with edits to saned.in)
Notes
Notes: svn path=/head/; revision=249398
Diffstat (limited to 'graphics/sane-backends/files/pkg-install.in')
-rw-r--r--graphics/sane-backends/files/pkg-install.in65
1 files changed, 65 insertions, 0 deletions
diff --git a/graphics/sane-backends/files/pkg-install.in b/graphics/sane-backends/files/pkg-install.in
new file mode 100644
index 000000000000..4ff38c47598f
--- /dev/null
+++ b/graphics/sane-backends/files/pkg-install.in
@@ -0,0 +1,65 @@
+#!/bin/sh
+
+user=saned
+group=saned
+
+ask() {
+ local question default answer
+
+ question=$1
+ default=$2
+ if [ -z "${PACKAGE_BUILDING}" ]; then
+ read -p "${question} [${default}]? " answer
+ fi
+ if [ x${answer} = x ]; then
+ answer=${default}
+ fi
+ echo ${answer}
+}
+
+yesno() {
+ local dflt question answer
+
+ question=$1
+ dflt=$2
+ while :; do
+ answer=$(ask "${question}" "${dflt}")
+ case "${answer}" in
+ [Yy]*) return 0;;
+ [Nn]*) return 1;;
+ esac
+ echo "Please answer yes or no."
+ done
+}
+
+if [ x"$2" = xPRE-INSTALL ]; then
+ if /usr/sbin/pw groupshow "${group}" 2>/dev/null; then
+ echo "You already have a group \"${group}\", so I will use it."
+ else
+ echo "You need a group \"${group}\"."
+ if ([ -n "$BATCH" ] || yesno "Would you like me to create it" y); then
+ /usr/sbin/pw groupadd ${group} -g 194 -h - || exit
+ echo "Done."
+ else
+ echo "Please create it, and try again."
+ exit 1
+ fi
+ fi
+
+ if /usr/sbin/pw user show "${user}" 2>/dev/null; then
+ echo "You already have a user \"${user}\", so I will use it."
+ pw usermod "${user}" -d /nonexistent
+ else
+ echo "You need a user \"${user}\"."
+ if ([ -n "$BATCH" ] || yesno "Would you like me to create it" y); then
+ /usr/sbin/pw useradd ${user} -u 194 -g ${group} -h - \
+ -d /nonexistent -s /bin/sh -c "SANE Scanner Daemon" || exit
+ echo "Done."
+ else
+ echo "Please create it, and try again."
+ exit 1
+ fi
+ fi
+
+ # TODO: Fix logging.
+fi