From d65b52fedbc259e16f6cee797f7bf44a0b7507b4 Mon Sep 17 00:00:00 2001 From: stephen mcquay Date: Sun, 9 Aug 2015 16:20:47 -0700 Subject: [PATCH] init --- fs.go | 13 +++++++++++++ fs_test.go | 31 +++++++++++++++++++++++++++++++ license | 27 +++++++++++++++++++++++++++ readme.md | 1 + 4 files changed, 72 insertions(+) create mode 100644 fs.go create mode 100644 fs_test.go create mode 100644 license create mode 100644 readme.md diff --git a/fs.go b/fs.go new file mode 100644 index 0000000..e81dd47 --- /dev/null +++ b/fs.go @@ -0,0 +1,13 @@ +package fs + +import "os" + +// Exists returns if a file exists +func Exists(path string) bool { + if _, err := os.Stat(path); err != nil { + return false + } else if os.IsNotExist(err) { + return false + } + return true +} diff --git a/fs_test.go b/fs_test.go new file mode 100644 index 0000000..46ed670 --- /dev/null +++ b/fs_test.go @@ -0,0 +1,31 @@ +package fs + +import ( + "io/ioutil" + "os" + "path/filepath" + "testing" +) + +func TestExists(t *testing.T) { + tmp, err := ioutil.TempDir("", "fs-test-") + if err != nil { + panic(err) + } + + filename := filepath.Join(tmp, "foo") + + if Exists(filename) { + t.Errorf("shouldn't have been able to find non-existant file: %s", filename) + } + + f, err := os.Create(filename) + if err != nil { + t.Errorf("problem opening fresh file (%q): %v", filename, err) + } + f.Close() + + if !Exists(filename) { + t.Errorf("failure to find existant file: %s", filename) + } +} diff --git a/license b/license new file mode 100644 index 0000000..03578ad --- /dev/null +++ b/license @@ -0,0 +1,27 @@ +Copyright (c) 2015, smcquay + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of fs nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..8b5664e --- /dev/null +++ b/readme.md @@ -0,0 +1 @@ +a small collection of filesystem code I tend to have in all go project.