Files
shadowsocks-rust/debian/shadowsocks-rust.postinst
mesher2024 ac3dc699c3 debian: fixup debian packaging build scripts (#1722)
* debian: fix up postinst bad substitution

Fix up postinst bad substitution caused by Bash string manipulation in the Dash script.

* debian: update compat file

Fix up the warning caused by compatibility levels before 10 are deprecated.

* debian: replace user nobody in systemd file with dynamicuser

* debian: remove dependency on apg and pwgen in control file

* debian: update shadowsocks-rust-server@.service

Add `DynamicUser=yes` in shadowsocks-rust-server@.service

* debian: update shadowsocks-rust-local@.service

Add `DynamicUser=yes` in shadowsocks-rust-local@.service

---------

Co-authored-by: mesher2024 <mesher2024@users.noreply.github.com>
2024-10-21 10:02:33 +08:00

49 lines
1.1 KiB
Bash

#!/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)
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
passwd=$(/usr/bin/ssservice genkey -m "chacha20-ietf-poly1305")
passwd=$(echo $passwd | sed "s/+/\\\\+/g" | sed "s/\\//\\\\\\//g")
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
#DEBHELPER#
exit 0