summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2021-09-27 22:47:54 +0200
committerVivien Kraus <vivien@planete-kraus.eu>2021-10-01 12:32:20 +0200
commit15b860bb97a40454e71500fa5d10939ba2daa5b9 (patch)
tree6304c83d89fb5fc2cbdc5c982e23d129d431db8c
parent32bcd81e8b41e2b57f024a8ff43ce2179a19c720 (diff)
Publish the post-update hook
-rw-r--r--hooks/post-update26
1 files changed, 26 insertions, 0 deletions
diff --git a/hooks/post-update b/hooks/post-update
new file mode 100644
index 0000000..a6bb55e
--- /dev/null
+++ b/hooks/post-update
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+# disfluid, implementation of the Solid specification
+# Copyright (C) 2020, 2021 Vivien Kraus
+
+# This program 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.
+
+# This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
+
+CHANNEL=$(mktemp -d 2>/dev/null || mktemp -d -t "channel")
+>&2 echo "The channel is in $CHANNEL."
+
+guix environment --ad-hoc git -- git archive "-o" "$CHANNEL/source.tar.gz" "master" guix update-channel.scm || exit 1
+(cd "$CHANNEL" ; rm -rf "source" ; mkdir "source" ; cd "source" ; guix environment --ad-hoc tar -- tar xf ../source.tar.gz)
+guix build -L "$CHANNEL/source/guix" -f "$CHANNEL/source/update-channel.scm" || exit 1
+
+exec git update-server-info