aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenny Ballou <kb@devnulllabs.io>2022-11-10 14:58:32 -0700
committerKenny Ballou <kb@devnulllabs.io>2022-11-10 16:54:40 -0700
commit0df72a28100b6b6156203d82c307dcfdbc95e87f (patch)
tree8b01a4a3f0761650980f992fc8b4911e9f68eba5
parentee7dcb415b3d71928d48ce86699d8f449b38d00f (diff)
downloaddotfiles-0df72a28100b6b6156203d82c307dcfdbc95e87f.tar.gz
dotfiles-0df72a28100b6b6156203d82c307dcfdbc95e87f.tar.xz
shepherd: add simple LanguageTool service
Instead of depending on Emacs to launch and manage this service, punt it to shepherd. Signed-off-by: Kenny Ballou <kb@devnulllabs.io>
-rw-r--r--config/emacs/emacs.d/emacs.org2
-rw-r--r--kbg/services/languagetool.scm27
-rw-r--r--kbg/services/shepherd.scm2
3 files changed, 30 insertions, 1 deletions
diff --git a/config/emacs/emacs.d/emacs.org b/config/emacs/emacs.d/emacs.org
index 0fa1fc15..671c79d7 100644
--- a/config/emacs/emacs.d/emacs.org
+++ b/config/emacs/emacs.d/emacs.org
@@ -1418,8 +1418,8 @@ https://masteringemacs.org/article/polymode-multiple-major-modes-how-to-use-sql-
:after flycheck
:hook (text-mode . flycheck-languagetool-setup)
:init
- (setq flycheck-languagetool-server-jar (string-join (list user-emacs-directory "language-tool/languagetool-server.jar")))
(setq flycheck-languagetool-language "en-US")
+ (setq flycheck-languagetool-server-port "9090")
(setq flycheck-languagetool-check-params '(("disabledRules" . "WHITESPACE_RULE")))
:config
(flycheck-add-next-checker 'languagetool 'vale)
diff --git a/kbg/services/languagetool.scm b/kbg/services/languagetool.scm
new file mode 100644
index 00000000..cbea0956
--- /dev/null
+++ b/kbg/services/languagetool.scm
@@ -0,0 +1,27 @@
+(define-module (kbg services languagetool)
+ #:use-module (kbg)
+ #:use-module (gnu)
+ #:use-module (guix)
+ #:use-module (gnu services)
+ #:use-module (gnu services shepherd)
+ #:use-module (gnu home services)
+ #:use-module (gnu home services shepherd)
+ #:use-module (gnu packages java)
+ #:use-module (kbg packages languagetool)
+ #:export (languagetool-service))
+
+(define languagetool-service
+ (let* ((languagetool-server (shepherd-service
+ (provision '(languagetool))
+ (requirement '())
+ (documentation "Run a local LanguageTool Server.")
+ (start #~(make-forkexec-constructor
+ (list #$(file-append openjdk "/bin/java")
+ "-classpath"
+ #$(file-append languagetool "/languagetool-server.jar")
+ "org.languagetool.server.HTTPServer"
+ "--port"
+ "9090"
+ "--premiumAlways")))
+ (stop #~(make-kill-destructor)))))
+ (list languagetool-server)))
diff --git a/kbg/services/shepherd.scm b/kbg/services/shepherd.scm
index 1ce18006..2416fd52 100644
--- a/kbg/services/shepherd.scm
+++ b/kbg/services/shepherd.scm
@@ -9,6 +9,7 @@
#:use-module (gnu services audio)
#:use-module (system repl server)
#:use-module (kbg services gnupg)
+ #:use-module (kbg services languagetool)
#:use-module (kbg services mcron)
#:use-module (kbg services mpd)
#:use-module (kbg services syncthing)
@@ -25,6 +26,7 @@
(list (service home-shepherd-service-type
(home-shepherd-configuration
(services (append gnupg-service
+ languagetool-service
mpd-service
syncthing-service))))))