github.com/mdempsky/go@v0.0.0-20151201204031-5dd372bd1e70/src/os/error_unix.go (about)

     1  // Copyright 2009 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris
     6  
     7  package os
     8  
     9  import "syscall"
    10  
    11  func isExist(err error) bool {
    12  	switch pe := err.(type) {
    13  	case nil:
    14  		return false
    15  	case *PathError:
    16  		err = pe.Err
    17  	case *LinkError:
    18  		err = pe.Err
    19  	case *SyscallError:
    20  		err = pe.Err
    21  	}
    22  	return err == syscall.EEXIST || err == ErrExist
    23  }
    24  
    25  func isNotExist(err error) bool {
    26  	switch pe := err.(type) {
    27  	case nil:
    28  		return false
    29  	case *PathError:
    30  		err = pe.Err
    31  	case *LinkError:
    32  		err = pe.Err
    33  	case *SyscallError:
    34  		err = pe.Err
    35  	}
    36  	return err == syscall.ENOENT || err == ErrNotExist
    37  }
    38  
    39  func isPermission(err error) bool {
    40  	switch pe := err.(type) {
    41  	case nil:
    42  		return false
    43  	case *PathError:
    44  		err = pe.Err
    45  	case *LinkError:
    46  		err = pe.Err
    47  	case *SyscallError:
    48  		err = pe.Err
    49  	}
    50  	return err == syscall.EACCES || err == syscall.EPERM || err == ErrPermission
    51  }