From 36058ceb30d24e3792b546f7709dc62ac8f4a11c Mon Sep 17 00:00:00 2001 From: Christian Stewart Date: Sun, 18 Apr 2021 20:45:30 -0700 Subject: [PATCH] osfs: add js shim Signed-off-by: Christian Stewart --- osfs/os.go | 2 ++ osfs/os_js.go | 23 +++++++++++++++++++++++ osfs/os_posix.go | 2 +- 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 osfs/os_js.go diff --git a/osfs/os.go b/osfs/os.go index 880389f..bcb3c6f 100644 --- a/osfs/os.go +++ b/osfs/os.go @@ -1,3 +1,5 @@ +// +build !js + // Package osfs provides a billy filesystem for the OS. package osfs // import "github.com/go-git/go-billy/v5/osfs" diff --git a/osfs/os_js.go b/osfs/os_js.go new file mode 100644 index 0000000..1044b71 --- /dev/null +++ b/osfs/os_js.go @@ -0,0 +1,23 @@ +package osfs + +import ( + "github.com/go-git/go-billy/v5" + "github.com/go-git/go-billy/v5/helper/chroot" + "github.com/go-git/go-billy/v5/memfs" +) + +// globalMemFs is the global memory fs +var globalMemFs = memfs.New() + +const ( + defaultDirectoryMode = 0755 + defaultCreateMode = 0666 +) + +// OS is a filesystem shim for js. +type OS struct{} + +// New returns a new OS filesystem. +func New(baseDir string) billy.Filesystem { + return chroot.New(globalMemFs, baseDir) +} diff --git a/osfs/os_posix.go b/osfs/os_posix.go index 7645dd5..c74d60e 100644 --- a/osfs/os_posix.go +++ b/osfs/os_posix.go @@ -1,4 +1,4 @@ -// +build !plan9,!windows +// +build !plan9,!windows,!js package osfs