diff options
Diffstat (limited to 'swarm-bee-clef.install')
-rw-r--r-- | swarm-bee-clef.install | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/swarm-bee-clef.install b/swarm-bee-clef.install new file mode 100644 index 000000000000..1dfabfef03a7 --- /dev/null +++ b/swarm-bee-clef.install @@ -0,0 +1,48 @@ +pre_install() { + if ! getent passwd bee-clef >/dev/null; then + useradd -r -d /var/lib/bee-clef -s /sbin/nologin -c 'Clef user' -U bee-clef + fi + + if getent passwd bee >/dev/null; then + usermod -a -G bee-clef bee >/dev/null + fi + + if ! test -d /var/lib/bee-clef; then + mkdir -p /var/lib/bee-clef/keystore + chmod 0750 /var/lib/bee-clef + chmod 0700 /var/lib/bee-clef/keystore + chown -R bee-clef:bee-clef /var/lib/bee-clef + fi + + if ! test -f /var/lib/bee-clef/password; then + tr </dev/urandom -dc _A-Z-a-z-0-9 2>/dev/null | head -c32 >/var/lib/bee-clef/password + chmod 0600 /var/lib/bee-clef/password + chown bee-clef:bee-clef /var/lib/bee-clef/password + fi +} + +post_install() { + SECRET=$(cat /var/lib/bee-clef/password) + parse_json() { echo $1 | sed -e 's/[{}]/''/g' | sed -e 's/", "/'\",\"'/g' | sed -e 's/" ,"/'\",\"'/g' | sed -e 's/" , "/'\",\"'/g' | sed -e 's/","/'\"---SEPERATOR---\"'/g' | awk -F=':' -v RS='---SEPERATOR---' "\$1~/\"$2\"/ {print}" | sed -e "s/\"$2\"://" | tr -d "\n\t" | sed -e 's/\\"/"/g' | sed -e 's/\\\\/\\/g' | sed -e 's/^[ \t]*//g' | sed -e 's/^"//' -e 's/"$//'; } + clef --configdir /var/lib/bee-clef --stdio-ui init >/dev/null 2>&1 <<EOF +$SECRET +$SECRET +EOF + clef --keystore /var/lib/bee-clef/keystore --stdio-ui newaccount --lightkdf >/dev/null 2>&1 <<EOF +$SECRET +EOF + clef --keystore /var/lib/bee-clef/keystore --configdir /var/lib/bee-clef --stdio-ui setpw 0x$(parse_json $(cat /var/lib/bee-clef/keystore/*) address) >/dev/null 2>&1 <<EOF +$SECRET +$SECRET +$SECRET +EOF + clef --keystore /var/lib/bee-clef/keystore --configdir /var/lib/bee-clef --stdio-ui attest $(sha256sum /etc/bee-clef/rules.js | cut -d' ' -f1 | tr -d '\n') >/dev/null 2>&1 <<EOF +$SECRET +EOF + chown -R bee-clef:bee-clef /var/lib/bee-clef +} + +post_remove() { + userdel bee-clef >/dev/null 2>&1 || true + groupdel bee-clef >/dev/null 2>&1 || true +} |