On this page:
parameter/  emacs-executable
parameter/  buttercup-executable
parameter/  ert-runner-executable
run-emacs
run-buttercup
run-ert-runner
9.2

6 Enigma API: Run Emacs🔗

 (require enigma/emacs/system/run-emacs)
  package: enigma-app

parameter

(parameter/emacs-executable)  string?

(parameter/emacs-executable executable-name-or-path)  void?
  executable-name-or-path : string?
Parameter for the GNU Emacs executable.

Defaults to "emacs".

parameter

(parameter/buttercup-executable)  string?

(parameter/buttercup-executable executable-name-or-path)
  void?
  executable-name-or-path : string?
Parameter for the Buttercup executable.

Defaults to "buttercup".

parameter

(parameter/ert-runner-executable)  string?

(parameter/ert-runner-executable executable-name-or-path)
  void?
  executable-name-or-path : string?
Parameter for the ERT-Runner executable.

Defaults to "ert-runner".

procedure

(run-emacs args)  exact-integer?

  args : (listof string?)
Run GNU Emacs with args.

Returns the exit code.

procedure

(run-buttercup args)  exact-integer?

  args : (listof string?)
Run Buttercup with args.

Returns the exit code.

procedure

(run-ert-runner args)  exact-integer?

  args : (listof string?)
Run ERT-Runner with args.

Returns the exit code.

The source code of this module:

#lang racket/base
 
(require racket/contract/base)
(require racket/string)
(require racket/system)
 
(provide
 (contract-out
  [parameter/emacs-executable
   (parameter/c string?)]
  [parameter/buttercup-executable
   (parameter/c string?)]
  [parameter/ert-runner-executable
   (parameter/c string?)]
  [run-emacs
   (-> (listof string?)
       exact-integer?)]
  [run-buttercup
   (-> (listof string?)
       exact-integer?)]
  [run-ert-runner
   (-> (listof string?)
       exact-integer?)]))
 
(define parameter/emacs-executable
  (make-parameter "emacs"))
 
(define parameter/buttercup-executable
  (make-parameter "buttercup"))
 
(define parameter/ert-runner-executable
  (make-parameter "ert-runner"))
 
(define (run-emacs args)
  (define emacs-exe-path
    (find-executable-path (parameter/emacs-executable)))
  (when (not emacs-exe-path)
    (raise (exn:fail "Could not find any GNU Emacs executable"
                     (current-continuation-marks))))
  (define cmd-args (append (list "-q" "--no-site-file") args))
  (eprintf " Executing: ~a ~a\n" emacs-exe-path (string-join cmd-args " "))
  (apply system*/exit-code emacs-exe-path cmd-args))
 
(define (run-buttercup args)
  (define buttercup-exe-path
    (find-executable-path (parameter/buttercup-executable)))
  (when (not buttercup-exe-path)
    (raise (exn:fail "Could not find buttercup executable"
                     (current-continuation-marks))))
  (define cmd-args (append '("--traceback" "full") args))
  (eprintf " Executing: ~a ~a\n" buttercup-exe-path (string-join cmd-args " "))
  (apply system*/exit-code buttercup-exe-path cmd-args))
 
(define (run-ert-runner args)
  (define ert-runner-exe-path
    (find-executable-path (parameter/ert-runner-executable)))
  (when (not ert-runner-exe-path)
    (raise (exn:fail "Could not find ert-runner executable"
                     (current-continuation-marks))))
  (define cmd-args (append '("--reporter" "ert+duration" "--script") args))
  (eprintf " Executing: ~a ~a\n" ert-runner-exe-path (string-join cmd-args " "))
  (apply system*/exit-code ert-runner-exe-path cmd-args))