summarylogtreecommitdiffstats
path: root/swarm-bee-clef.install
diff options
context:
space:
mode:
authorMFW782021-04-15 06:49:40 +0000
committerMFW782021-04-15 06:49:40 +0000
commit22bcd9b797e89ef13076d0077c1a8bc7f893a054 (patch)
treeac1710a49559e79386125222cd2586ed66abea49 /swarm-bee-clef.install
downloadaur-22bcd9b797e89ef13076d0077c1a8bc7f893a054.tar.gz
Initial commit
Diffstat (limited to 'swarm-bee-clef.install')
-rw-r--r--swarm-bee-clef.install48
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
+}