forked from colonelpanic/dotfiles
Container construction moved to colonelpanic-org-agenda-api repo. This flake now only exports org-agenda-custom-config (tangled files). Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
35 lines
1.1 KiB
Nix
35 lines
1.1 KiB
Nix
# org-agenda-api.nix - Tangled org-config for org-agenda-api container
|
|
{ pkgs, inputs, system }:
|
|
let
|
|
# Path to org-config.org in the dotfiles
|
|
orgConfigOrg = ../dotfiles/emacs.d/org-config.org;
|
|
|
|
# Tangle org-config.org to produce elisp files
|
|
orgAgendaCustomConfig = pkgs.runCommand "org-agenda-custom-config" {
|
|
buildInputs = [ pkgs.emacs-nox ];
|
|
} ''
|
|
mkdir -p $out
|
|
mkdir -p work
|
|
|
|
# Copy org file to writable location (tangle writes to same directory)
|
|
cp ${orgConfigOrg} work/org-config.org
|
|
|
|
# Tangle org-config.org
|
|
emacs --batch \
|
|
--eval '(require (quote org))' \
|
|
--eval '(org-babel-tangle-file "work/org-config.org")'
|
|
|
|
# Copy all tangled files to output, stripping :straight keywords
|
|
# (straight.el is not available in the minimal container Emacs)
|
|
for f in work/org-config-*.el; do
|
|
if [ -f "$f" ]; then
|
|
# Remove :straight nil and :straight t from use-package declarations
|
|
sed -e 's/:straight nil//g' -e 's/:straight t//g' "$f" > "$out/$(basename "$f")"
|
|
fi
|
|
done
|
|
'';
|
|
|
|
in {
|
|
org-agenda-custom-config = orgAgendaCustomConfig;
|
|
}
|