Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NFS host and guest support #40

Open
wants to merge 48 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
e681822
go: bump minimum version 1.20 -> 1.21
djdv Jan 8, 2024
a8def3d
go: add missing sum entries
djdv Jan 31, 2024
cb7e8b6
commands: mount - remove `slices` shim
djdv Feb 3, 2024
d31eb91
commands: flag - remove `BoolFunc` shim
djdv Feb 3, 2024
3ca8339
commands: mount - lint; unused const
djdv Feb 1, 2024
1809fb6
commands: mount - pinfs use missing default value
djdv Feb 2, 2024
7086d0a
commands: flag - add `uint` and `uint64` values
djdv Feb 3, 2024
2778bff
filesystem: add std `ErrUnsupported` helpers
djdv Jan 9, 2024
b173055
filesystem: add `Lstat` method to `SymlinkFS`
djdv Jan 9, 2024
cd78cab
filesystem: add SymlinkFS extension functions
djdv Jan 9, 2024
c0079d9
filesystem: add IDFS extension function
djdv Jan 9, 2024
60c7117
filesystem: add CreateFileFS extension function
djdv Jan 9, 2024
b661c2f
filesystem: add RemoveFS extension function
djdv Jan 9, 2024
6582e3e
filesystem: add RenameFS extension function
djdv Jan 9, 2024
f6b005e
filesystem: add MkdirFS extension function
djdv Jan 9, 2024
8ab1bb4
filesystem: update `OpenFile` to use new std error
djdv Jan 9, 2024
2ae8cf1
filesystem: update `Truncate` to use new std error
djdv Jan 9, 2024
15f262e
filesystem: split const blocks
djdv Jan 9, 2024
b9c138a
filesystem: add `Seeker` extension function
djdv Jan 24, 2024
1edbc1b
cgofuse: use `Seeker` extension function
djdv Jan 24, 2024
b66f975
ipfs: use standard `errors.ErrUnsupported`
djdv Jan 24, 2024
f18803c
filesystem: delete `ErrUnsupported` shim
djdv Jan 24, 2024
31a5c6a
ipfs: use standard `fs` error values
djdv Jan 24, 2024
28078f2
filesystem: remove redundant (`fs`) error values
djdv Jan 24, 2024
b4738c5
filesystem: split up `SymlinkFS`
djdv Jan 24, 2024
8be4a87
cgofuse: `SymlinkFS` -> `LinkMaker`, `LinkReader`
djdv Jan 24, 2024
2bb0959
filesystem: remove `SymlinkFS`
djdv Jan 31, 2024
2008ad7
filesystem: use `filesystem.Root` in test
djdv Jan 24, 2024
ee0472d
filesystem: use `fserrors` types for invalid ops
djdv Jan 30, 2024
ae4ec3f
fserrors: add `Recursion` and `Closed` error kinds
djdv Jan 31, 2024
a686051
cgofuse: translate new error kinds
djdv Jan 31, 2024
76176e6
cgofuse: add missing whitespace to error message
djdv Jan 13, 2024
a5b137e
cgofuse: use `filesystem.Root` instead of redefine
djdv Jan 24, 2024
be33bbb
ipfs: fix LRU module violating semantic versioning
djdv Nov 19, 2023
19dc0c6
ipfs: extract multiaddr container to its own pkg
djdv Nov 19, 2023
158db7a
ipfs: de-duplicate path validation + std error val
djdv Jan 24, 2024
801f0c0
ipfs: all - add support for symbolic links
djdv Jan 30, 2024
c73690d
nfs: add package documentation
djdv Jan 11, 2024
36ed870
nfs: implement server
djdv Nov 19, 2023
06dffcc
nfs: implement `Host` mountpoint
djdv Jan 11, 2024
4740ba5
nfs: implement client
djdv Nov 19, 2023
7afc91b
nfs: implement `Guest` mountpoint
djdv Jan 11, 2024
619f0cb
commands: mount - add NFS host support
djdv Nov 19, 2023
c734c86
commands: mount - add NFS guest support
djdv Nov 19, 2023
26b805b
build: add `nonfs` tag
djdv Feb 1, 2024
8152a55
ci: add `nonfs` tag
djdv Feb 1, 2024
4938b0f
ipfs: all - use new `Closed`(`EBADF`) error kind
djdv Feb 1, 2024
668436d
ci: fix the `go vet -tags` invocation
djdv Mar 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/actions/test/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ runs:
run: |
$commandPath = Join-Path . ...
$tagValues = & {
$tags = 'nofuse', 'noipfs'
$tags = 'nofuse', 'noipfs', 'nonfs'
$combinations = @()
$allCombinations = [Math]::Pow(2, $tags.Length)
for ($i = 0; $i -lt $allCombinations; $i++) {
Expand All @@ -31,7 +31,7 @@ runs:
return $combinations
}
$tagValues | ForEach-Object {
"go vet -tags=$_ ${commandPath}"
go vet -tags="$_" "${commandPath}"
}
go test -cover ${commandPath}
go test -race ${commandPath}
3 changes: 2 additions & 1 deletion cmd/build/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,8 @@ func parseFlags() (mode buildMode, tags string, output string) {
tagsUsage = "a comma-separated list of build tags" +
"\nsupported in addition to Go's standard tags:" +
"\nnofuse - build without FUSE host support" +
"\nnoipfs - build without IPFS guest support"
"\nnoipfs - build without IPFS guest support" +
"\nnonfs - build without NFS host & guest support"
)
flagSet.StringVar(&tags, tagName, "", tagsUsage)
const (
Expand Down
29 changes: 16 additions & 13 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,29 +1,36 @@
module github.com/djdv/go-filesystem-utils

go 1.20
go 1.21

require (
github.com/adrg/xdg v0.4.0
github.com/charmbracelet/glamour v0.6.0
github.com/djdv/p9 v0.2.1-0.20230601152255-7d74b92b80b0
github.com/hashicorp/golang-lru/v2 v2.0.2
github.com/go-git/go-billy/v5 v5.5.0
github.com/hashicorp/golang-lru/arc/v2 v2.0.7
github.com/ipfs/boxo v0.10.2-0.20230629143123-2d3edc552442
github.com/ipfs/go-block-format v0.1.2
github.com/ipfs/go-cid v0.4.1
github.com/ipfs/go-ipfs-cmds v0.9.0
github.com/ipfs/go-ipld-cbor v0.0.6
github.com/ipfs/go-ipld-format v0.5.0
github.com/ipfs/go-unixfsnode v1.7.1
github.com/ipfs/kubo v0.21.0
github.com/ipld/go-codec-dagpb v1.6.0
github.com/jaevor/go-nanoid v1.3.0
github.com/lxn/win v0.0.0-20210218163916-a377121e959e
github.com/mattn/go-colorable v0.1.4
github.com/muesli/termenv v0.15.1
github.com/multiformats/go-multiaddr v0.9.0
github.com/multiformats/go-multiaddr-dns v0.3.1
github.com/multiformats/go-multibase v0.2.0
github.com/u-root/uio v0.0.0-20230305220412-3e8cd9d6bf63
github.com/willscott/go-nfs v0.0.2
github.com/willscott/go-nfs-client v0.0.0-20240104095149-b44639837b00
github.com/winfsp/cgofuse v1.5.1-0.20230130140708-f87f5db493b5
golang.org/x/exp v0.0.0-20230321023759-10a507213a29
golang.org/x/sys v0.9.0
golang.org/x/term v0.9.0
golang.org/x/sys v0.16.0
golang.org/x/term v0.12.0
)

require (
Expand All @@ -37,28 +44,24 @@ require (
github.com/go-logr/logr v1.2.4 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/google/uuid v1.3.0 // indirect
github.com/google/uuid v1.5.0 // indirect
github.com/gorilla/css v1.0.0 // indirect
github.com/hashicorp/golang-lru v0.5.4 // indirect
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
github.com/ipfs/bbloom v0.0.4 // indirect
github.com/ipfs/go-bitfield v1.1.0 // indirect
github.com/ipfs/go-block-format v0.1.2
github.com/ipfs/go-blockservice v0.5.2 // indirect
github.com/ipfs/go-datastore v0.6.0 // indirect
github.com/ipfs/go-ipfs-util v0.0.3 // indirect
github.com/ipfs/go-ipld-legacy v0.2.1 // indirect
github.com/ipfs/go-log v1.0.5 // indirect
github.com/ipfs/go-log/v2 v2.5.1 // indirect
github.com/ipfs/go-metrics-interface v0.0.1 // indirect
github.com/ipfs/go-unixfsnode v1.7.3
github.com/ipld/go-codec-dagpb v1.6.0
github.com/ipld/go-ipld-prime v0.20.0 // indirect
github.com/jbenet/goprocess v0.1.4 // indirect
github.com/klauspost/cpuid/v2 v2.2.5 // indirect
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
github.com/libp2p/go-libp2p v0.27.7 // indirect
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
github.com/lxn/win v0.0.0-20210218163916-a377121e959e
github.com/mattn/go-isatty v0.0.19 // indirect
github.com/mattn/go-runewidth v0.0.14 // indirect
github.com/microcosm-cc/bluemonday v1.0.21 // indirect
Expand All @@ -77,6 +80,7 @@ require (
github.com/opentracing/opentracing-go v1.2.0 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/polydawn/refmt v0.89.0 // indirect
github.com/rasky/go-xdr v0.0.0-20170124162913-1a41d1a06c93 // indirect
github.com/rivo/uniseg v0.2.0 // indirect
github.com/rs/cors v1.7.0 // indirect
github.com/spaolacci/murmur3 v1.1.0 // indirect
Expand All @@ -89,13 +93,12 @@ require (
go.uber.org/atomic v1.11.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.24.0 // indirect
golang.org/x/crypto v0.10.0 // indirect
golang.org/x/crypto v0.13.0 // indirect
golang.org/x/mod v0.10.0 // indirect
golang.org/x/net v0.10.0 // indirect
golang.org/x/net v0.15.0 // indirect
golang.org/x/sync v0.2.0 // indirect
golang.org/x/tools v0.9.1 // indirect
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
google.golang.org/protobuf v1.30.0 // indirect
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
lukechampine.com/blake3 v1.2.1 // indirect
)
Loading
Loading