set -e
pathfind() {
OLDIFS="$IFS"
IFS=:
for p in $PATH; do
if [ -x "$p/$*" ]; then
IFS="$OLDIFS"
return 0
fi
done
IFS="$OLDIFS"
return 1
}
case "$1" in
configure|reconfigure)
pathfind setcap && setcap \
cap_net_bind_service+ep /usr/bin/ssservice \
cap_net_bind_service+ep /usr/bin/sslocal \
cap_net_bind_service+ep /usr/bin/ssserver
if [ ! -f /etc/shadowsocks-rust/config.json ]; then
set +e
pathfind apg
if [ $? -eq 0 ]; then
passwd=$(apg -n 1 -M ncl)
else
passwd=$(pwgen 12 1)
fi
set -e
mkdir -p /etc/shadowsocks-rust
sed "s/barfoo!/$passwd/" /usr/share/shadowsocks-rust/config.json \
> /etc/shadowsocks-rust/config.json
fi
;;
abort-upgrade|abort-remove|abort-deconfigure)
exit 0
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 0
;;
esac
exit 0