# Package to add Element to IPFS MFS and IPNS # Copyright (C) 2022 Nguyễn Gia Phong # # This file is part of loang configuration. # # Loang configuration is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published # by the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Loang configuration is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with loang configuration. If not, see . { lib, stdenv, element-web, ipfs, writeText , conf ? {}, ipns-key ? "element" }: let element = element-web.override { conf = conf; }; ipfs-add-element = writeText "ipfs-add-element" '' #!/bin/sh set -xe ipfs=${ipfs}/bin/ipfs element=${element} path=/ipfs/$($ipfs add --recursive --quieter --pin=false $element) $ipfs name publish --key=${ipns-key} $path $ipfs files mkdir -p $(dirname $element) $ipfs files cp $path $element ''; in stdenv.mkDerivation rec { pname = "element-ipfs"; inherit (element) version; buildInputs = [ element ipfs ]; dontUnpack = true; installPhase = '' runHook preInstall install -m755 -D ${ipfs-add-element} $out/bin/ipfs-add-element runHook postInstall ''; }