aboutsummaryrefslogtreecommitdiff
path: root/aux/containers
diff options
context:
space:
mode:
Diffstat (limited to 'aux/containers')
-rw-r--r--aux/containers/guix/manifest.scm29
-rw-r--r--aux/containers/guix/pinned-channels.scm11
-rwxr-xr-xaux/containers/guix/with-container.sh19
3 files changed, 59 insertions, 0 deletions
diff --git a/aux/containers/guix/manifest.scm b/aux/containers/guix/manifest.scm
new file mode 100644
index 0000000..b10cc6d
--- /dev/null
+++ b/aux/containers/guix/manifest.scm
@@ -0,0 +1,29 @@
+(specifications->manifest
+ (map symbol->string
+ '(bash
+ coreutils
+ findutils
+ diffutils
+ grep
+ sed
+ git
+ tar
+ gzip
+ gawk
+ make
+ perl
+ shellcheck
+ pandoc
+
+ jekyll
+ flac
+ mediainfo
+ mdpo-patched
+ git-annex
+ hunspell
+ inkscape
+ imagemagick
+ ffmpeg
+ lilypond
+ mktorrent-latest ;; in xyz-euandreh channel
+ timidity++)))
diff --git a/aux/containers/guix/pinned-channels.scm b/aux/containers/guix/pinned-channels.scm
new file mode 100644
index 0000000..504406f
--- /dev/null
+++ b/aux/containers/guix/pinned-channels.scm
@@ -0,0 +1,11 @@
+(cons*
+ (channel
+ (name 'xyz-euandreh)
+ (url "git://euandreh.xyz/package-repository")
+ (branch "main")
+ (introduction
+ (make-channel-introduction
+ "d749e053e6db365069cb9b2ef47a78b06f9e7361"
+ (openpgp-fingerprint
+ "5BDA E9B8 B2F6 C6BC BB0D 6CE5 81F9 0EC3 CD35 6060"))))
+ %default-channels)
diff --git a/aux/containers/guix/with-container.sh b/aux/containers/guix/with-container.sh
new file mode 100755
index 0000000..fcbb8b5
--- /dev/null
+++ b/aux/containers/guix/with-container.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+set -eu
+
+CHANNEL_REMOTE='https://euandreh.xyz/package-repository.git'
+CHANNEL_DIR="${XDG_CACHE_HOME:-$HOME/.cache}/euandreh-guix-channel"
+
+if [ ! -d "$CHANNEL_DIR" ]; then
+ git clone "$CHANNEL_REMOTE" "$CHANNEL_DIR"
+fi
+
+git -C "$CHANNEL_DIR" pull
+
+ENV_CMD="guix environment -L $CHANNEL_DIR/src/ -m aux/containers/guix/manifest.scm"
+
+if [ -z "${1:-}" ]; then
+ $ENV_CMD
+else
+ $ENV_CMD --pure -C -- sh -c "$@"
+fi