diff options
author | MFW78 | 2021-04-15 06:49:40 +0000 |
---|---|---|
committer | MFW78 | 2021-04-15 06:49:40 +0000 |
commit | 22bcd9b797e89ef13076d0077c1a8bc7f893a054 (patch) | |
tree | ac1710a49559e79386125222cd2586ed66abea49 | |
download | aur-22bcd9b797e89ef13076d0077c1a8bc7f893a054.tar.gz |
Initial commit
-rw-r--r-- | .SRCINFO | 23 | ||||
-rw-r--r-- | PKGBUILD | 36 | ||||
-rw-r--r-- | swarm-bee-clef.install | 48 |
3 files changed, 107 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..00f04170d303 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,23 @@ +pkgbase = swarm-bee-clef + pkgdesc = Go Ethereum's external signer packaged for bee + pkgver = 0.4.9 + pkgrel = 1 + url = https://swarm.ethereum.org/ + install = swarm-bee-clef.install + arch = x86_64 + license = GPLv3 + makedepends = go + makedepends = git + depends = bash + optdepends = bee-clef: external signer for bee + conflicts = bee-clef-bin + options = !strip + options = !buildflags + options = !makeflags + backup = etc/bee-clef/4byte.json + backup = etc/bee-clef/rules.js + source = git+https://github.com/ethersphere/bee-clef.git#tag=v0.4.9 + sha512sums = SKIP + +pkgname = swarm-bee-clef + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..031bd02c2e1f --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,36 @@ +# Maintainer: MFW78 <mfw78@chasingseed.com> + +pkgname=swarm-bee-clef +pkgver=0.4.9 +pkgrel=1 +pkgdesc="Go Ethereum's external signer packaged for bee" +arch=('x86_64') +url='https://swarm.ethereum.org/' +license=('GPLv3') +depends=('bash') +optdepends=('bee-clef: external signer for bee') +makedepends=('go' 'git') +options=('!strip' '!buildflags' '!makeflags') +conflicts=('bee-clef-bin') +backup=( + 'etc/bee-clef/4byte.json' + 'etc/bee-clef/rules.js' +) +source=("git+https://github.com/ethersphere/bee-clef.git#tag=v${pkgver}") +sha512sums=('SKIP') +install="${pkgname}.install" + +build() { + cd "$srcdir/bee-clef" + export GOBIN="$srcdir/bee-clef" + go install github.com/ethereum/go-ethereum/cmd/clef@latest +} + +package() { + cd "$srcdir/bee-clef" + install -Dm644 LICENSE -t "$pkgdir/usr/share/licenses/bee-clef" + install -Dm644 packaging/{4byte.json,rules.js} -t "$pkgdir/etc/bee-clef" + install -Dm644 packaging/bee-clef.service -t "$pkgdir/usr/lib/systemd/system" + install -Dm755 packaging/bee-clef-{keys,service} -t "$pkgdir/usr/bin" + install -Dm755 clef -t "$pkgdir/usr/bin" +} 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 +} |