blob: f7053b86326532f94beb52def9f5544c9657e24d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
;; Shutup
(setq make-backup-files nil)
(setq auto-save-default nil)
(setq top-dir default-directory)
(set-frame-name "emacs-bot")
(setq debug-on-error t)
(setq debug-on-quit t)
(defun robot-file (file)
(concat top-dir "robot/" file))
(defun clean (file)
(delete-file (robot-file file)))
(defun copy (from to)
(copy-file (robot-file from) (robot-file to) t))
(defun find (file)
(find-file (robot-file file)))
;; Clean up
(clean "failure.txt")
(clean "messages.txt")
(defun die ()
(interactive)
(kill-emacs))
(defun dump-buffer (buffer file)
(save-excursion
(when (get-buffer buffer)
(set-buffer buffer)
(write-region (point-min) (point-max)
(concat top-dir "robot/" file)
nil 'dont-display-wrote-file-message))))
(add-hook 'debugger-mode-hook
'robot-dump-in-a-bit)
(defun robot-dump-in-a-bit ()
(run-with-timer 1 nil #'robot-dump))
(defun robot-dump ()
(dump-buffer "*Backtrace*" "failure.txt")
(dump-buffer "*Messages*" "messages.txt")
(princ "Killing Emacs after error\n"
'external-debugging-output)
(kill-emacs -1))
(defun robot-dump-messages ()
(dump-buffer "*Messages*" "messages.txt"))
(run-with-timer 1 1 #'robot-dump-messages)
(defun robot-check-cards-seen-and-die (n)
(if (= n org-drill-cards-in-this-emacs)
(progn
(princ
(format "Succeeded: Saw %s cards as expected\n" n)
'external-debugging-output)
(kill-emacs 0))
(princ
(format "Failed: Saw %s cards, expecting %s\n"
org-drill-cards-in-this-emacs n)
'external-debugging-output)
(kill-emacs -1)))
;; Move the package-user-dir somewhere local
(require 'package)
(setq package-user-dir
(concat
default-directory
"elpa"))
(package-initialize)
;; Borrowed from use-package
(defun robot-ensure-elpa (package &optional no-refresh)
(if (package-installed-p package)
t
(if (and (not no-refresh))
(package-read-all-archive-contents))
(if (or (assoc package package-archive-contents) no-refresh)
(package-install package)
(progn
(package-refresh-contents)
(robot-ensure-elpa package t)))))
(robot-ensure-elpa 'persist)
|