123456789101112131415161718192021222324252627 |
- #!/bin/sh
- set -eu
- [ -n "${UMASK:-}" ] && umask "$UMASK"
- if [ "$(id -u)" = '0' ]; then
- binary="$1"
- if [ -z "${PCAP:-}" ]; then
- # If Syncthing should have no extra capabilities, make sure to remove them
- # from the binary. This will fail with an error if there are no
- # capabilities to remove, hence the || true etc.
- setcap -r "$binary" 2>/dev/null || true
- else
- # Set capabilities on the Syncthing binary before launching it.
- setcap "$PCAP" "$binary"
- fi
- # Chown may fail, which may cause us to be unable to start; but maybe
- # it'll work anyway, so we let the error slide.
- chown "${PUID}:${PGID}" "${HOME}" || true
- exec su-exec "${PUID}:${PGID}" \
- env HOME="$HOME" "$@"
- else
- exec "$@"
- fi
|