gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

os.go (2927B)


      1 // Copyright © 2014 Steve Francia <spf@spf13.com>.
      2 // Copyright 2013 tsuru authors. All rights reserved.
      3 //
      4 // Licensed under the Apache License, Version 2.0 (the "License");
      5 // you may not use this file except in compliance with the License.
      6 // You may obtain a copy of the License at
      7 // http://www.apache.org/licenses/LICENSE-2.0
      8 //
      9 // Unless required by applicable law or agreed to in writing, software
     10 // distributed under the License is distributed on an "AS IS" BASIS,
     11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 // See the License for the specific language governing permissions and
     13 // limitations under the License.
     14 
     15 package afero
     16 
     17 import (
     18 	"os"
     19 	"time"
     20 )
     21 
     22 var _ Lstater = (*OsFs)(nil)
     23 
     24 // OsFs is a Fs implementation that uses functions provided by the os package.
     25 //
     26 // For details in any method, check the documentation of the os package
     27 // (http://golang.org/pkg/os/).
     28 type OsFs struct{}
     29 
     30 func NewOsFs() Fs {
     31 	return &OsFs{}
     32 }
     33 
     34 func (OsFs) Name() string { return "OsFs" }
     35 
     36 func (OsFs) Create(name string) (File, error) {
     37 	f, e := os.Create(name)
     38 	if f == nil {
     39 		// while this looks strange, we need to return a bare nil (of type nil) not
     40 		// a nil value of type *os.File or nil won't be nil
     41 		return nil, e
     42 	}
     43 	return f, e
     44 }
     45 
     46 func (OsFs) Mkdir(name string, perm os.FileMode) error {
     47 	return os.Mkdir(name, perm)
     48 }
     49 
     50 func (OsFs) MkdirAll(path string, perm os.FileMode) error {
     51 	return os.MkdirAll(path, perm)
     52 }
     53 
     54 func (OsFs) Open(name string) (File, error) {
     55 	f, e := os.Open(name)
     56 	if f == nil {
     57 		// while this looks strange, we need to return a bare nil (of type nil) not
     58 		// a nil value of type *os.File or nil won't be nil
     59 		return nil, e
     60 	}
     61 	return f, e
     62 }
     63 
     64 func (OsFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) {
     65 	f, e := os.OpenFile(name, flag, perm)
     66 	if f == nil {
     67 		// while this looks strange, we need to return a bare nil (of type nil) not
     68 		// a nil value of type *os.File or nil won't be nil
     69 		return nil, e
     70 	}
     71 	return f, e
     72 }
     73 
     74 func (OsFs) Remove(name string) error {
     75 	return os.Remove(name)
     76 }
     77 
     78 func (OsFs) RemoveAll(path string) error {
     79 	return os.RemoveAll(path)
     80 }
     81 
     82 func (OsFs) Rename(oldname, newname string) error {
     83 	return os.Rename(oldname, newname)
     84 }
     85 
     86 func (OsFs) Stat(name string) (os.FileInfo, error) {
     87 	return os.Stat(name)
     88 }
     89 
     90 func (OsFs) Chmod(name string, mode os.FileMode) error {
     91 	return os.Chmod(name, mode)
     92 }
     93 
     94 func (OsFs) Chown(name string, uid, gid int) error {
     95 	return os.Chown(name, uid, gid)
     96 }
     97 
     98 func (OsFs) Chtimes(name string, atime time.Time, mtime time.Time) error {
     99 	return os.Chtimes(name, atime, mtime)
    100 }
    101 
    102 func (OsFs) LstatIfPossible(name string) (os.FileInfo, bool, error) {
    103 	fi, err := os.Lstat(name)
    104 	return fi, true, err
    105 }
    106 
    107 func (OsFs) SymlinkIfPossible(oldname, newname string) error {
    108 	return os.Symlink(oldname, newname)
    109 }
    110 
    111 func (OsFs) ReadlinkIfPossible(name string) (string, error) {
    112 	return os.Readlink(name)
    113 }