]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Fix wasm build
authorMatt Joiner <anacrolix@gmail.com>
Tue, 7 Dec 2021 02:07:58 +0000 (13:07 +1100)
committerMatt Joiner <anacrolix@gmail.com>
Tue, 7 Dec 2021 02:08:06 +0000 (13:08 +1100)
This was broken in the move to zombiezen sqlite, which still doesn't work on WASM/JS.

storage/default-dir-piece-completion-boltdb.go [new file with mode: 0644]
storage/default-dir-piece-completion-other.go
storage/default-dir-piece-completion-sqlite.go [deleted file]
storage/sqlite-piece-completion.go

diff --git a/storage/default-dir-piece-completion-boltdb.go b/storage/default-dir-piece-completion-boltdb.go
new file mode 100644 (file)
index 0000000..a1e869a
--- /dev/null
@@ -0,0 +1,11 @@
+// Bolt piece completion is available, and sqlite is not.
+//go:build !noboltdb && !wasm && (js || nosqlite)
+// +build !noboltdb
+// +build !wasm
+// +build js nosqlite
+
+package storage
+
+func NewDefaultPieceCompletionForDir(dir string) (PieceCompletion, error) {
+       return NewBoltPieceCompletion(dir)
+}
index 4e40e397cff2ac5b8d36b1d37d6af832b4d70f8f..b6f561ca5b937b5d9b3798adb23068baedbf5e6b 100644 (file)
@@ -1,5 +1,6 @@
-//go:build wasm
-// +build wasm
+// Bolt piece completion is not available, and neither is sqlite.
+//go:build wasm || noboltdb
+// +build wasm noboltdb
 
 package storage
 
diff --git a/storage/default-dir-piece-completion-sqlite.go b/storage/default-dir-piece-completion-sqlite.go
deleted file mode 100644 (file)
index 8f4fbd4..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-//go:build !nosqlite
-// +build !nosqlite
-
-package storage
-
-func NewDefaultPieceCompletionForDir(dir string) (PieceCompletion, error) {
-       return NewSqlitePieceCompletion(dir)
-}
index 54331e326dda70d4ec1b7b9f9b648828ea1e156e..30c8a3885310e183c1949712d82dfe1c328d550d 100644 (file)
@@ -1,5 +1,7 @@
-//go:build !nosqlite
-// +build !nosqlite
+// modernc.org/sqlite depends on modernc.org/libc which doesn't work for JS (and probably wasm but I
+// think JS is the stronger signal).
+//go:build !js && !nosqlite
+// +build !js,!nosqlite
 
 package storage
 
@@ -13,6 +15,11 @@ import (
        "zombiezen.com/go/sqlite/sqlitex"
 )
 
+// sqlite is always the default when available.
+func NewDefaultPieceCompletionForDir(dir string) (PieceCompletion, error) {
+       return NewSqlitePieceCompletion(dir)
+}
+
 type sqlitePieceCompletion struct {
        mu     sync.Mutex
        closed bool