46 lines
1.1 KiB
Nix
46 lines
1.1 KiB
Nix
# trivial builder for Emacs packages
|
|
|
|
{ callPackage, lib, epkgs, ... }@envargs:
|
|
|
|
let
|
|
libBuildHelper = epkgs.lib-build-helper;
|
|
in
|
|
|
|
libBuildHelper.extendMkDerivation' epkgs.trivialBuild (finalAttrs:
|
|
|
|
args:
|
|
|
|
{
|
|
preBuild = args.preBuild or ''
|
|
for file in ./*.org
|
|
do
|
|
emacs --batch --eval "(require 'org)" --eval "(org-babel-tangle-file \"$file\" (concat (file-name-sans-extension \"$file\") \".el\") \"emacs-lisp\")"
|
|
done
|
|
'';
|
|
unpackCmd = args.unpackCmd or ''
|
|
case "$curSrc" in
|
|
*.el)
|
|
# keep original source filename without the hash
|
|
local filename=$(basename "$curSrc")
|
|
filename="''${filename:33}"
|
|
cp $curSrc $filename
|
|
chmod +w $filename
|
|
sourceRoot="."
|
|
;;
|
|
*.org)
|
|
# keep original source filename without the hash
|
|
local filename=$(basename "$curSrc")
|
|
filename="''${filename:33}"
|
|
cp $curSrc $filename
|
|
chmod +w $filename
|
|
sourceRoot="."
|
|
;;
|
|
*)
|
|
_defaultUnpack "$curSrc"
|
|
;;
|
|
esac
|
|
'';
|
|
}
|
|
|
|
)
|