Create setNewFileMode function.

Create separate files with setNewFileMode to avoid
runtime checks.
This commit is contained in:
Klaus Post 2015-08-16 12:39:38 +02:00
parent dfe232cf46
commit 520b1b65b0
3 changed files with 25 additions and 11 deletions

View file

@ -7,7 +7,6 @@ import (
"io/ioutil" "io/ioutil"
"os" "os"
"path/filepath" "path/filepath"
"runtime"
"sort" "sort"
"sync" "sync"
@ -147,16 +146,7 @@ func (lb *localBlob) Finalize(t backend.Type, name string) error {
return err return err
} }
// set file to readonly, except on Windows, return setNewFileMode(f, fi)
// otherwise deletion will fail.
if runtime.GOOS != "windows" {
err = os.Chmod(f, fi.Mode()&os.FileMode(^uint32(0222)))
if err != nil {
return err
}
}
return nil
} }
// Create creates a new Blob. The data is available only after Finalize() // Create creates a new Blob. The data is available only after Finalize()

View file

@ -0,0 +1,12 @@
// +build !windows
package local
import (
"os"
)
// set file to readonly
func setNewFileMode(f string, fi os.FileInfo) error {
return os.Chmod(f, fi.Mode()&os.FileMode(^uint32(0222)))
}

View file

@ -0,0 +1,12 @@
package local
import (
"os"
)
// We don't modify read-only on windows,
// since it will make us unable to delete the file,
// and this isn't common practice on this platform.
func setNewFileMode(f string, fi os.FileInfo) error {
return nil
}