Skip to content

Commit bae6a52

Browse files
committed
Support emacsql-libsqlite3
1 parent eb69ca3 commit bae6a52

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

forge-pkg.el

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
(define-package "forge" "0"
22
"Access Git forges from Magit."
33
'((emacs "25.1")
4-
(closql "1.0.6")
4+
(closql "20210927")
55
(dash "2.18.1")
66
(emacsql-sqlite "3.0.0")
77
(ghub "3.5.2")

lisp/forge-db.el

+19-2
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,16 @@
3737

3838
;;; Options
3939

40+
(defcustom forge-database-connector 'sqlite
41+
"The database connector used by Forge.
42+
This must be set before `forge' is loaded. To use an alternative
43+
connectors you must install the respective package explicitly."
44+
:package-version '(forge . "0.3.0")
45+
:group 'forge
46+
:type '(choice (const sqlite)
47+
(const libsqlite3)
48+
(symbol :tag "other")))
49+
4050
(defcustom forge-database-file
4151
(expand-file-name "forge-database.sqlite" user-emacs-directory)
4252
"The file used to store the forge database."
@@ -46,8 +56,15 @@
4656

4757
;;; Core
4858

49-
(defclass forge-database (closql-database)
50-
((object-class :initform 'forge-repository)))
59+
(cl-case forge-database-connector
60+
(sqlite
61+
(defclass forge-database (emacsql-sqlite-connection closql-database)
62+
((object-class :initform 'forge-repository))))
63+
(libsqlite3
64+
(require (quote emacsql-libsqlite3))
65+
(with-no-warnings
66+
(defclass forge-database (emacsql-libsqlite3-connection closql-database)
67+
((object-class :initform 'forge-repository))))))
5168

5269
(defconst forge--db-version 7)
5370
(defconst forge--sqlite-available-p

0 commit comments

Comments
 (0)