diff mbox series

[bug#56174] gnu: Add mle.

Message ID 68d2c3b91f55a2058e01fb6a8217cf2e8a0c43f3.1656012611.git.sikmir@disroot.org
State Accepted
Headers show
Series [bug#56174] gnu: Add mle. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Nikolay Korotkiy June 23, 2022, 7:30 p.m. UTC
* gnu/packages/text-editors.scm (mle): New variable.
---
 gnu/packages/text-editors.scm | 52 +++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

Comments

Ludovic Courtès June 25, 2022, 9:45 p.m. UTC | #1
Hi,

Nikolay Korotkiy <sikmir@disroot.org> skribis:

> * gnu/packages/text-editors.scm (mle): New variable.

I ran ‘guix style’ (which now has slightly different rules) and applied
it, thanks!

Ludo’.
diff mbox series

Patch

diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 1c936be6a8..03df69667a 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -56,6 +56,7 @@  (define-module (gnu packages text-editors)
   #:use-module (gnu packages code)
   #:use-module (gnu packages cpp)
   #:use-module (gnu packages crates-io)
+  #:use-module (gnu packages datastructures)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
@@ -1215,3 +1216,54 @@  (define-public tree-sitter
 This package includes the @code{libtree-sitter} runtime library.
 ")
     (license license:expat)))
+
+(define-public mle
+  (package
+    (name "mle")
+    (version "1.5.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/adsr/mle")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1nhd00lsx9v12zdmps92magz76c2d8zzln3lxvzl4ng73gbvq3n0"))))
+    (build-system gnu-build-system)
+    (inputs (list lua pcre uthash))
+    (arguments
+     `(#:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-lua
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "mle.h"
+               (("<lua5.4/") "<"))
+             (substitute* "Makefile"
+               (("-llua5.4") "-llua")
+               (("/bin/sh") (which "sh")))))
+         (add-after 'unpack 'patch-test-shebangs
+           (lambda _
+             (substitute* (find-files "tests/func" "\\.sh$")
+               (("/usr/bin/env bash") (which "bash")))))
+         (delete 'configure) ;no configure script
+         (add-after 'install 'install-man-pages
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")) (man (string-append out
+                                                          "/share/man/man1")))
+               (install-file "mle.1"
+                             (string-append man))))))
+       #:make-flags
+       (list (string-append "CC="
+                            ,(cc-for-target))
+             (string-append "prefix=" %output))))
+    (home-page "https://github.com/adsr/mle")
+    (synopsis "Small, flexible, terminal-based text editor")
+    (description
+     "mle is a small, flexible, terminal-based text editor written in C.
+Notable features include: full Unicode support, syntax highlighting,
+scriptable rc file, macros, search and replace (PCRE), window
+splitting, multiple cursors, and integration with various shell
+commands.")
+    (license license:asl2.0)))