Format Readme.md code blocks as Go code
diff --git a/README.md b/README.md
index bcc4bb4..c1d08cc 100644
--- a/README.md
+++ b/README.md
@@ -51,20 +51,20 @@
$ go get github.com/spf13/afero
Next include Afero in your application.
-
- import "github.com/spf13/afero"
-
+```go
+import "github.com/spf13/afero"
+```
## Step 2: Declare a backend
First define a package variable and set it to a pointer to a filesystem.
+```go
+var AppFs afero.Fs = &afero.MemMapFs{}
- var AppFs afero.Fs = &afero.MemMapFs{}
+or
- or
-
- var AppFs afero.Fs = &afero.OsFs{}
-
+var AppFs afero.Fs = &afero.OsFs{}
+```
It is important to note that if you repeat the composite literal you
will be using a completely new and isolated filesystem. In the case of
OsFs it will still use the same underlying filesystem but will reduce
@@ -76,9 +76,9 @@
would.
So if my application before had:
-
- os.Open('/tmp/foo')
-
+```go
+os.Open('/tmp/foo')
+```
We would replace it with a call to `AppFs.Open('/tmp/foo')`.
`AppFs` being the variable we defined above.
@@ -87,37 +87,37 @@
## List of all available functions
File System Methods Available:
-
- Chmod(name string, mode os.FileMode) : error
- Chtimes(name string, atime time.Time, mtime time.Time) : error
- Create(name string) : File, error
- Mkdir(name string, perm os.FileMode) : error
- MkdirAll(path string, perm os.FileMode) : error
- Name() : string
- Open(name string) : File, error
- OpenFile(name string, flag int, perm os.FileMode) : File, error
- Remove(name string) : error
- RemoveAll(path string) : error
- Rename(oldname, newname string) : error
- Stat(name string) : os.FileInfo, error
-
+```go
+Chmod(name string, mode os.FileMode) : error
+Chtimes(name string, atime time.Time, mtime time.Time) : error
+Create(name string) : File, error
+Mkdir(name string, perm os.FileMode) : error
+MkdirAll(path string, perm os.FileMode) : error
+Name() : string
+Open(name string) : File, error
+OpenFile(name string, flag int, perm os.FileMode) : File, error
+Remove(name string) : error
+RemoveAll(path string) : error
+Rename(oldname, newname string) : error
+Stat(name string) : os.FileInfo, error
+```
File Interfaces and Methods Available:
+```go
+io.Closer
+io.Reader
+io.ReaderAt
+io.Seeker
+io.Writer
+io.WriterAt
- io.Closer
- io.Reader
- io.ReaderAt
- io.Seeker
- io.Writer
- io.WriterAt
-
- Name() : string
- Readdir(count int) : []os.FileInfo, error
- Readdirnames(n int) : []string, error
- Stat() : os.FileInfo, error
- Sync() : error
- Truncate(size int64) : error
- WriteString(s string) : ret int, err error
-
+Name() : string
+Readdir(count int) : []os.FileInfo, error
+Readdirnames(n int) : []string, error
+Stat() : os.FileInfo, error
+Sync() : error
+Truncate(size int64) : error
+WriteString(s string) : ret int, err error
+```
In some applications it may make sense to define a new package that
simply exports the file system variable for easy access from anywhere.
@@ -146,31 +146,31 @@
independent, with no test relying on the state left by an earlier test.
Then in my tests I would initialize a new MemMapFs for each test:
+```go
+func TestExist(t *testing.T) {
+ appFS = &afero.MemMapFs{}
+ // create test files and directories
+ appFS.MkdirAll("src/a", 0755))
+ appFS.WriteFile("src/a/b", []byte("file b"), 0644)
+ appFS.WriteFile("src/c", []byte("file c"), 0644)
+ testExistence("src/c", true, t)
+}
- func TestExist(t *testing.T) {
- appFS = &afero.MemMapFs{}
- // create test files and directories
- appFS.MkdirAll("src/a", 0755))
- appFS.WriteFile("src/a/b", []byte("file b"), 0644)
- appFS.WriteFile("src/c", []byte("file c"), 0644)
- testExistence("src/c", true, t)
- }
-
- func testExistence(name string, e bool, t *testing.T) {
- _, err := appFS.Stat(name)
- if os.IsNotExist(err) {
- if e {
- t.Errorf("file \"%s\" does not exist.\n", name)
- }
- } else if err != nil {
- panic(err)
- } else {
- if !e {
- t.Errorf("file \"%s\" exists.\n", name)
- }
- }
- }
-
+func testExistence(name string, e bool, t *testing.T) {
+ _, err := appFS.Stat(name)
+ if os.IsNotExist(err) {
+ if e {
+ t.Errorf("file \"%s\" does not exist.\n", name)
+ }
+ } else if err != nil {
+ panic(err)
+ } else {
+ if !e {
+ t.Errorf("file \"%s\" exists.\n", name)
+ }
+ }
+}
+```
## Using Afero with Http
@@ -182,11 +182,11 @@
Afero provides an httpFs file system which satisfies this requirement.
Any Afero FileSystem can be used as an httpFs.
-
- httpFs := &afero.HttpFs{SourceFs: <ExistingFS>}
- fileserver := http.FileServer(httpFs.Dir(<PATH>)))
- http.Handle("/", fileserver)
-
+```go
+httpFs := &afero.HttpFs{SourceFs: <ExistingFS>}
+fileserver := http.FileServer(httpFs.Dir(<PATH>)))
+http.Handle("/", fileserver)
+```
# Available Backends
## OsFs