summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Letan <lthms@soap.coffee>2022-08-13 19:16:51 +0200
committerThomas Letan <lthms@soap.coffee>2022-08-13 19:19:30 +0200
commit7350cc722850621c2f362e3b802b16a4753b9ae4 (patch)
treeaaf933250eaf48f84ced59097f084b7309596ada
parentUse emacs --daemon to speed things up (diff)
Provide a script to capture output of commands into files in 'logs/'
-rw-r--r--.gitignore62
-rw-r--r--literate-programming.mk4
-rw-r--r--logs/.gitkeep0
-rw-r--r--makefile12
-rw-r--r--org.mk2
-rwxr-xr-xscripts/capture.sh13
6 files changed, 85 insertions, 8 deletions
diff --git a/.gitignore b/.gitignore
index fe8d057..31af606 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,6 +12,68 @@
.soupault.deps
.theme.deps
_opam
+logs/coqffi-tutorial.stderr
+logs/site--cleopatra--commands.html.stderr
+logs/site--cleopatra--coq.html.stderr
+logs/site--cleopatra--dependencies.html.stderr
+logs/site--cleopatra.html.stderr
+logs/site--cleopatra--literate-programming.html.stderr
+logs/site--cleopatra--org.html.stderr
+logs/site--cleopatra--soupault.html.stderr
+logs/site--cleopatra--theme.html.stderr
+logs/site--coq.html.stderr
+logs/site--haskell.html.stderr
+logs/site--index.html.stderr
+logs/site--meta.html.stderr
+logs/site--miscellaneous.html.stderr
+logs/site--news--ColorlessThemes-0.2.html.stderr
+logs/site--opinions--index.html.stderr
+logs/site--opinions--MonadTransformers.html.stderr
+logs/site--opinions--StackedGit.html.stderr
+logs/site--posts--CleopatraV1.html.stderr
+logs/site--posts--CoqffiEcho.html.stderr
+logs/site--posts--Coqffi.html.stderr
+logs/site--posts--CoqffiIntro.html.stderr
+logs/site--posts--DiscoveringCommonLisp.html.stderr
+logs/site--posts--ExtensibleTypeSafeErrorHandling.html.stderr
+logs/site--posts--Ltac.html.stderr
+logs/site--posts--RankNTypesInOCaml.html.stderr
+logs/site--posts--StronglySpecifiedFunctions.html.stderr
+logs/site--posts--Thanks.html.stderr
+logs/site--projects--index.html.stderr
+logs/start-server.stderr
+logs/tangling-lp.stderr
+logs/coqffi-tutorial.stdout
+logs/site--cleopatra--commands.html.stdout
+logs/site--cleopatra--coq.html.stdout
+logs/site--cleopatra--dependencies.html.stdout
+logs/site--cleopatra.html.stdout
+logs/site--cleopatra--literate-programming.html.stdout
+logs/site--cleopatra--org.html.stdout
+logs/site--cleopatra--soupault.html.stdout
+logs/site--cleopatra--theme.html.stdout
+logs/site--coq.html.stdout
+logs/site--haskell.html.stdout
+logs/site--index.html.stdout
+logs/site--meta.html.stdout
+logs/site--miscellaneous.html.stdout
+logs/site--news--ColorlessThemes-0.2.html.stdout
+logs/site--opinions--index.html.stdout
+logs/site--opinions--MonadTransformers.html.stdout
+logs/site--opinions--StackedGit.html.stdout
+logs/site--posts--CleopatraV1.html.stdout
+logs/site--posts--CoqffiEcho.html.stdout
+logs/site--posts--Coqffi.html.stdout
+logs/site--posts--CoqffiIntro.html.stdout
+logs/site--posts--DiscoveringCommonLisp.html.stdout
+logs/site--posts--ExtensibleTypeSafeErrorHandling.html.stdout
+logs/site--posts--Ltac.html.stdout
+logs/site--posts--RankNTypesInOCaml.html.stdout
+logs/site--posts--StronglySpecifiedFunctions.html.stdout
+logs/site--posts--Thanks.html.stdout
+logs/site--projects--index.html.stdout
+logs/start-server.stdout
+logs/tangling-lp.stdout
lp/
node_modules
out
diff --git a/literate-programming.mk b/literate-programming.mk
index e7d8cb1..1e0ab16 100644
--- a/literate-programming.mk
+++ b/literate-programming.mk
@@ -1,6 +1,6 @@
literate-programming-prebuild : org-prebuild
@scripts/pretty-echo.sh "Tangling" "literate programming project"
- @${EMACS} --eval "(cleopatra:export-lp)"
+ @capture.sh tangling-lp ${EMACS} --eval "(cleopatra:export-lp)"
ARTIFACTS += lp/ site/posts/deps.svg
@@ -11,7 +11,7 @@ coqffi-tutorial-build : literate-programming-prebuild _opam/init
@cd lp/coqffi-tutorial; dune build --display quiet
@scripts/pretty-echo.sh "Archiving" "coqffi tutorial"
@rm -f ${COQFFI_ARCHIVE}
- @tar --exclude="_build" -C lp/ -czvf ${COQFFI_ARCHIVE} coqffi-tutorial
+ @capture.sh coqffi-tutorial tar --exclude="_build" -C lp/ -czvf ${COQFFI_ARCHIVE} coqffi-tutorial
site/posts/CoqffiEcho.html : coqffi-tutorial-build
literate-programming-build : coqffi-tutorial-build
diff --git a/logs/.gitkeep b/logs/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/logs/.gitkeep
diff --git a/makefile b/makefile
index 339cc79..3b516a5 100644
--- a/makefile
+++ b/makefile
@@ -1,4 +1,6 @@
-ARTIFACTS :=
+PATH := scripts/:${PATH}
+
+ARTIFACTS := logs/*.stderr logs/*.stdout
CONFIGURE := .emacs.d
PROCS := $(wildcard *.mk)
@@ -11,12 +13,12 @@ EMACS_NAME=cleopatra
EMACS := emacsclient -s ${EMACS_NAME}
init : ${PROCS_DEPS} needs-emacs
- make ${CMD}
+ @make ${CMD}
needs-emacs :
@scripts/pretty-echo.sh "Starting" "emacs daemon"
- @${EMACS} -s ${EMACS_NAME} --eval "(kill-emacs)" || true
- @ROOT=$(shell pwd) emacs --daemon=${EMACS_NAME} -Q --load="scripts/init.el"
+ @${EMACS} -s ${EMACS_NAME} --eval "(kill-emacs)" 2> /dev/null || true
+ @ROOT=$(shell pwd) capture.sh "start-server" emacs --daemon=${EMACS_NAME} -Q --load="scripts/init.el"
.PHONY : needs-emacs
@@ -33,7 +35,7 @@ postbuild :
@scripts/pretty-echo.sh "Updating" ".gitignore"
@scripts/update-gitignore.sh $(sort ${CONFIGURE} ${ARTIFACTS} ${PROCS_DEPS})
@scripts/pretty-echo.sh "Killing" "emacs daemon"
- ${EMACS} -s ${EMACS_NAME} --eval "(kill-emacs)"
+ @${EMACS} -s ${EMACS_NAME} --eval "(kill-emacs)"
@rm -f $(wildcard .*.deps)
.PHONY: prebuild build postbuild
diff --git a/org.mk b/org.mk
index fb2f3d4..c6c1bc3 100644
--- a/org.mk
+++ b/org.mk
@@ -11,4 +11,4 @@ site/index.org : site/haskell.org site/miscellaneous.org site/meta.org site/coq.
%.html : %.org org.mk
@scripts/pretty-echo.sh Exporting "$*.org"
- @${EMACS} --eval "(cleopatra:export-org \"$<\")"
+ @capture.sh "$@" ${EMACS} --eval "(cleopatra:export-org \"$<\")"
diff --git a/scripts/capture.sh b/scripts/capture.sh
new file mode 100755
index 0000000..b21c3eb
--- /dev/null
+++ b/scripts/capture.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+logfile=logs/$(echo ${1} | sed -e 's/\//--/g')
+
+shift 1
+
+"$@" 1> ${logfile}.stdout 2> ${logfile}.stderr
+exitcode=$?
+
+if [[ ! ${exitcode} -eq 0 ]]; then
+ echo "An error occurred, see ${logfile}.stdout and ${logfile}.stderr"
+ exit ${exitcode}
+fi