Skip to content
/ remapfs Public

Remapped fs.FS package for Go.

License

Notifications You must be signed in to change notification settings

l4go/remapfs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

l4go/remapfs ライブラリ

使われるfs.FSをパスで振り分ける、仮想的なfs.FSを提供します。 

httpモジュールでは、以下のようなコードで、パスでhttpハンドラを呼び分けることができます。

http.Handle("/"rootHandler)
http.Handle("/foo"fooHandler)
http.Handle("/foo/bar"barHandler)
http.Handle("/hoge"hogeHandler)

この処理のようなパスでの処理の振り分けを、fs.FS上でも実現する為のモジュールです。

以下のようなコードで、使われるfs.FSをパスで振り分ける、仮想的なfs.FSを作成できます。

mfs, err := remapfs.New(remapfs.FSMap{
    ".":       rootFS,
    "foo":     fooFS,
    "foo/bar": foobarFS,
    "hoge":    hogeFS,
})

エラーが起きないと分かってる場合は、以下のように書くこともできます。

var virtualFS = remapfs.MustNew(remapfs.FSMap{
    ".":       rootFS,
    "foo":     fooFS,
    "foo/bar": foobarFS,
    "hoge":    hogeFS,
})

詳細仕様

  • remapfs.RemapFS
    • mapによる指定で、複数のfs.FSを1つのfs.FSにする機能を提供します。