#!/bin/sh set -e # POSIX-compliant maint function recommend by devref # to check for the existence of a command # https://www.debian.org/doc/manuals/developers-reference/ch06.html#bpp-debian-maint-scripts 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) if pathfind setcap; then if ! setcap \ cap_net_bind_service+ep /usr/bin/ss-local \ cap_net_bind_service,cap_net_admin+ep /usr/bin/ss-redir \ cap_net_bind_service+ep /usr/bin/ss-server \ cap_net_bind_service+ep /usr/bin/ss-tunnel; then echo "Failed to set capabilities; ss-* will only be runnable by root." fi else echo "setcap not installed; ss-* will only be runnable by root." fi if [ ! -f /etc/shadowsocks-libev/config.json ]; then set +e passwd=$(perl -e 'print map{("a".."z","A".."Z",0..9)[int(rand(62))]}(1..12)') set -e mkdir -p /etc/shadowsocks-libev sed "s/barfoo!/$passwd/" /usr/share/shadowsocks-libev/config.json \ > /etc/shadowsocks-libev/config.json fi ;; abort-upgrade|abort-remove|abort-deconfigure) exit 0 ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 0 ;; esac #DEBHELPER# exit 0