From abba443ca5a8ad3042d63e103cdf043a763b018a Mon Sep 17 00:00:00 2001 From: Rick Lei Date: Thu, 9 Mar 2017 12:21:31 +0800 Subject: [PATCH] Turn off errexit option when detecting the apg command Commit https://github.com/shadowsocks/shadowsocks-libev/commit/f32ac38c2f7aab09ec25131209954957518de42a allows to use pwgen to generate the initial password at the first installation. However it won't work when apg isn't installed because: * the postinst script has errexit option set ("set -e") * at the first installation of ss-libev, apg or pwgen will be called to generate the initial password in config.json * when apg isn't installed, "pathfind apg" would return 1 * and the postinst script will immediately exit due to "set -e" This commit temporarily turn off the errexit option for pathfind() --- debian/shadowsocks-libev.postinst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/debian/shadowsocks-libev.postinst b/debian/shadowsocks-libev.postinst index f66eee0c..d6051d3d 100755 --- a/debian/shadowsocks-libev.postinst +++ b/debian/shadowsocks-libev.postinst @@ -26,12 +26,14 @@ case "$1" in cap_net_bind_service+ep /usr/bin/ss-server \ cap_net_bind_service+ep /usr/bin/ss-tunnel if [ ! -f /etc/shadowsocks-libev/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-libev sed "s/barfoo!/$passwd/" /usr/share/shadowsocks-libev/config.json \ > /etc/shadowsocks-libev/config.json