URI: 
       Add trailing file separator to temp dir - hugo - [fork] hugo port for 9front
  HTML git clone git@git.drkhsh.at/hugo.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
   DIR commit a3892685bc33b7518894ea21ae2d8a7c9f29e735
   DIR parent f0c8585b5003ee2bb49f331a2fef9e4f2a780d13
  HTML Author: Cyrill Schumacher <cyrill@schumacher.fm>
       Date:   Thu, 19 Feb 2015 09:19:35 +1100
       
       Add trailing file separator to temp dir
       
       Make sure that the file separator is added to the temp dir in all cases.
       
       This prevents cache temp files being written to the root temp folder.
       
       Fixes #910
       
       Diffstat:
         M helpers/path.go                     |      27 +++++++++++++++------------
       
       1 file changed, 15 insertions(+), 12 deletions(-)
       ---
   DIR diff --git a/helpers/path.go b/helpers/path.go
       @@ -16,15 +16,16 @@ package helpers
        import (
                "errors"
                "fmt"
       -        "github.com/spf13/afero"
       -        jww "github.com/spf13/jwalterweatherman"
       -        "github.com/spf13/viper"
                "io"
                "os"
                "path/filepath"
                "regexp"
                "strings"
                "unicode"
       +
       +        "github.com/spf13/afero"
       +        jww "github.com/spf13/jwalterweatherman"
       +        "github.com/spf13/viper"
        )
        
        // Bridge for common functionality in filepath vs path
       @@ -439,12 +440,16 @@ func WriteToDisk(inpath string, r io.Reader, fs afero.Fs) (err error) {
        }
        
        // GetTempDir returns the OS default temp directory with trailing slash
       -// if subPath is not empty then it will be created recursively
       +// if subPath is not empty then it will be created recursively with mode 777 rwx rwx rwx
        func GetTempDir(subPath string, fs afero.Fs) string {
       -        dir := os.TempDir()
       -        if FilePathSeparator != dir[len(dir)-1:] {
       -                dir = dir + FilePathSeparator
       +        addSlash := func(p string) string {
       +                if FilePathSeparator != p[len(p)-1:] {
       +                        p = p + FilePathSeparator
       +                }
       +                return p
                }
       +        dir := addSlash(os.TempDir())
       +
                if subPath != "" {
                        // preserve windows backslash :-(
                        if FilePathSeparator == "\\" {
       @@ -456,16 +461,14 @@ func GetTempDir(subPath string, fs afero.Fs) string {
                        }
        
                        if exists, _ := Exists(dir, fs); exists {
       -                        return dir
       +                        return addSlash(dir)
                        }
        
       -                err := fs.MkdirAll(dir, 0777) // rwx, rw, r
       +                err := fs.MkdirAll(dir, 0777)
                        if err != nil {
                                panic(err)
                        }
       -                if FilePathSeparator != dir[len(dir)-1:] {
       -                        dir = dir + FilePathSeparator
       -                }
       +                dir = addSlash(dir)
                }
                return dir
        }