summaryrefslogtreecommitdiffstats
path: root/hugofs/basepath_real_filename_fs.go
diff options
context:
space:
mode:
Diffstat (limited to 'hugofs/basepath_real_filename_fs.go')
-rw-r--r--hugofs/basepath_real_filename_fs.go91
1 files changed, 0 insertions, 91 deletions
diff --git a/hugofs/basepath_real_filename_fs.go b/hugofs/basepath_real_filename_fs.go
deleted file mode 100644
index 1024c4d30..000000000
--- a/hugofs/basepath_real_filename_fs.go
+++ /dev/null
@@ -1,91 +0,0 @@
-// Copyright 2018 The Hugo Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package hugofs
-
-import (
- "os"
-
- "github.com/spf13/afero"
-)
-
-// RealFilenameInfo is a thin wrapper around os.FileInfo adding the real filename.
-type RealFilenameInfo interface {
- os.FileInfo
-
- // This is the real filename to the file in the underlying filesystem.
- RealFilename() string
-}
-
-type realFilenameInfo struct {
- os.FileInfo
- realFilename string
-}
-
-func (f *realFilenameInfo) RealFilename() string {
- return f.realFilename
-}
-
-// NewBasePathRealFilenameFs returns a new BasePathRealFilenameFs instance
-// using base.
-func NewBasePathRealFilenameFs(base *afero.BasePathFs) *BasePathRealFilenameFs {
- return &BasePathRealFilenameFs{BasePathFs: base}
-}
-
-// BasePathRealFilenameFs is a thin wrapper around afero.BasePathFs that
-// provides the real filename in Stat and LstatIfPossible.
-type BasePathRealFilenameFs struct {
- *afero.BasePathFs
-}
-
-// Stat returns the os.FileInfo structure describing a given file. If there is
-// an error, it will be of type *os.PathError.
-func (b *BasePathRealFilenameFs) Stat(name string) (os.FileInfo, error) {
- fi, err := b.BasePathFs.Stat(name)
- if err != nil {
- return nil, err
- }
-
- if _, ok := fi.(RealFilenameInfo); ok {
- return fi, nil
- }
-
- filename, err := b.RealPath(name)
- if err != nil {
- return nil, &os.PathError{Op: "stat", Path: name, Err: err}
- }
-
- return &realFilenameInfo{FileInfo: fi, realFilename: filename}, nil
-}
-
-// LstatIfPossible returns the os.FileInfo structure describing a given file.
-// It attempts to use Lstat if supported or defers to the os. In addition to
-// the FileInfo, a boolean is returned telling whether Lstat was called.
-func (b *BasePathRealFilenameFs) LstatIfPossible(name string) (os.FileInfo, bool, error) {
-
- fi, ok, err := b.BasePathFs.LstatIfPossible(name)
- if err != nil {
- return nil, false, err
- }
-
- if _, ok := fi.(RealFilenameInfo); ok {
- return fi, ok, nil
- }
-
- filename, err := b.RealPath(name)
- if err != nil {
- return nil, false, &os.PathError{Op: "lstat", Path: name, Err: err}
- }
-
- return &realFilenameInfo{FileInfo: fi, realFilename: filename}, ok, nil
-}