mirror of
https://github.com/status-im/nimbus-eth2.git
synced 2025-01-09 22:06:21 +00:00
Jakub
b79d267b8f
The `/etc/os-release` file exists in most distributions and can be easily read in Bash by sourcing it: ``` > docker run --rm -it debian:bullseye root@2f5d6e038738:/# grep '^ID=' /etc/os-release ID=debian ``` ``` > docker run --rm -it ubuntu:22.04 root@316b572b6e4d:/# grep '^ID=' /etc/os-release ID=ubuntu ``` The dependency on `lsb-release` tool is unnecessary, and pulls in additional big dependencies like `python3`: ``` # apt show lsb-release | grep Depends Depends: python3:any, distro-info-data ``` Which if used in a Docker container would make it unnecessarily big. Signed-off-by: Jakub Sokołowski <jakub@status.im>
28 lines
647 B
Bash
28 lines
647 B
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
DISTRO="UNKNOWN"
|
|
if [[ -r /etc/os-release ]]; then
|
|
source /etc/os-release
|
|
DISTRO="${ID}"
|
|
fi
|
|
|
|
if ! id -u nimbus > /dev/null 2>&1; then
|
|
case $DISTRO in
|
|
Ubuntu|ubuntu|Debian|debian)
|
|
# Debian uses `adduser` to create user...
|
|
adduser --system --no-create-home --group nimbus
|
|
;;
|
|
*)
|
|
# ... while `useradd` is more standard
|
|
useradd --system --no-create-home --user-group nimbus
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
mkdir -p /var/lib/nimbus
|
|
chown nimbus:nimbus /var/lib/nimbus
|
|
|
|
# Systems like docker containers do not have systemd.
|
|
systemctl daemon-reload || echo "notice: systemd daemon not reloaded" >&2
|